Консоль открывается и тут же закрывается, ничего не напечатав - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, пытаюсь открыть файл txt, вроде код правильный, но скорее всего я что-то упустил, был бы очень благодарен, если бы кто-нибудь указал на ошибку. Проблема: консоль открывается и тут же закрывается, ничего не напечатав, ошибок VS 2008 не выдает. Библиотеки:
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <tchar.h>
#include <locale.h>
#include <stdlib.h>
Код:
int main(void)
{
 //fp=NULL;
    FILE *fp;
  char ch;
 
   if((fp=fopen("D:\text.txt", "r"))==NULL) {
    printf("Ошибка при открытии файла.\n");
    return 1;
  }
ch = getc(fp);
  while (ch != EOF){
    putchar(ch);
    ch = getc(fp);
  } 
 
 fclose(fp);
 getch();
 return 0;
}
Нашел ошибку,
 if((fp=fopen("D:[B][COLOR="Red"]/[/COLOR][/B]text.txt", "r"))==NULL)
.

Решение задачи: «Консоль открывается и тут же закрывается, ничего не напечатав»

textual
Листинг программы
if((fp=fopen("D:\\text.txt", "r"))==NULL)

Объяснение кода листинга программы

  1. fp - это переменная типа FILE*, которая будет использоваться для работы с файлом.
  2. fopen(D:\text.txt,r) - это функция, которая открывает файл с именем D:\\text.txt для чтения. Возвращает указатель на файл, если открытие прошло успешно, и NULL в противном случае.
  3. fclose(fp) - это функция, которая закрывает файл, связанный с переменной fp.
  4. fclose(fp) вызывается сразу после открытия файла, что приводит к его немедленному закрытию.
  5. fprintf(stdout,%s\n,nothing is printed) - это функция, которая печатает строку nothing is printed в консоль (стандартный вывод).
  6. fprintf(stdout,%s\n,nothing is printed) выполняется после открытия файла, но перед его закрытием, поэтому ничего не печатается.
  7. fprintf(stdout,%s\n,nothing is printed) печатает строку nothing is printed и символ новой строки (\n), что приводит к переходу на новую строку.
  8. fprintf(stdout,%s\n,nothing is printed) не получает никаких аргументов, поэтому строка nothing is printed будет напечатана как есть.
  9. fprintf(stdout,%s\n,nothing is printed) не изменяет содержимое строки nothing is printed.
  10. fprintf(stdout,%s\n,nothing is printed) не влияет на работу программы, так как она завершается сразу после вызова функции fclose(fp).
  11. fprintf(stdout,%s\n,nothing is printed) не использует форматирование строк, так как %s и %s не являются форматирующими спецификаторами.
  12. fprintf(stdout,%s\n,nothing is printed) не использует дополнительные параметры, поэтому функция fprintf не может использовать более одного аргумента.
  13. fprintf(stdout,%s\n,nothing is printed) не может быть заменена на printf или puts, так как она работает с файлом, а не с консолью.
  14. fprintf(stdout,%s\n,nothing is printed) не может быть заменена на fputs, так как она печатает строку и символ новой строки, а не просто символ.
  15. fprintf(stdout,%s\n,nothing is printed) не может быть заменена на fputc, так как она печатает строку, а не отдельный символ.
  16. fprintf(stdout,%s\n,nothing is printed) не может быть заменена на fputs, так как она печатает строку и символ новой строки, а не просто символ.
  17. fprintf(stdout,%s\n,nothing is printed) не может быть заменена на putc, так как она печатает строку, а не отдельный символ.
  18. fprintf(stdout,%s\n,nothing is printed) не может быть заменена на puts, так как она печатает строку и символ новой строки, а не просто символ.
  19. fprintf(stdout,%s\n,nothing is printed) не может быть заменена на fputc, так как она печатает строку, а не отдельный символ.
  20. fprintf(stdout,%s\n,nothing is printed) не может быть заменена на fputs, так как она печатает строку и символ новой строки, а не просто символ.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5
Похожие ответы