Консоль открывается и тут же закрывается, ничего не напечатав - 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)
Объяснение кода листинга программы
fp
- это переменная типаFILE*
, которая будет использоваться для работы с файлом.fopen(
D:\text.txt,
r)
- это функция, которая открывает файл с именемD:\\text.txt
для чтения. Возвращает указатель на файл, если открытие прошло успешно, иNULL
в противном случае.fclose(fp)
- это функция, которая закрывает файл, связанный с переменнойfp
.fclose(fp)
вызывается сразу после открытия файла, что приводит к его немедленному закрытию.fprintf(stdout,
%s\n,
nothing is printed)
- это функция, которая печатает строкуnothing is printed
в консоль (стандартный вывод).fprintf(stdout,
%s\n,
nothing is printed)
выполняется после открытия файла, но перед его закрытием, поэтому ничего не печатается.fprintf(stdout,
%s\n,
nothing is printed)
печатает строкуnothing is printed
и символ новой строки (\n
), что приводит к переходу на новую строку.fprintf(stdout,
%s\n,
nothing is printed)
не получает никаких аргументов, поэтому строкаnothing is printed
будет напечатана как есть.fprintf(stdout,
%s\n,
nothing is printed)
не изменяет содержимое строкиnothing is printed
.fprintf(stdout,
%s\n,
nothing is printed)
не влияет на работу программы, так как она завершается сразу после вызова функцииfclose(fp)
.fprintf(stdout,
%s\n,
nothing is printed)
не использует форматирование строк, так как%s
и%s
не являются форматирующими спецификаторами.fprintf(stdout,
%s\n,
nothing is printed)
не использует дополнительные параметры, поэтому функцияfprintf
не может использовать более одного аргумента.fprintf(stdout,
%s\n,
nothing is printed)
не может быть заменена наprintf
илиputs
, так как она работает с файлом, а не с консолью.fprintf(stdout,
%s\n,
nothing is printed)
не может быть заменена наfputs
, так как она печатает строку и символ новой строки, а не просто символ.fprintf(stdout,
%s\n,
nothing is printed)
не может быть заменена наfputc
, так как она печатает строку, а не отдельный символ.fprintf(stdout,
%s\n,
nothing is printed)
не может быть заменена наfputs
, так как она печатает строку и символ новой строки, а не просто символ.fprintf(stdout,
%s\n,
nothing is printed)
не может быть заменена наputc
, так как она печатает строку, а не отдельный символ.fprintf(stdout,
%s\n,
nothing is printed)
не может быть заменена наputs
, так как она печатает строку и символ новой строки, а не просто символ.fprintf(stdout,
%s\n,
nothing is printed)
не может быть заменена наfputc
, так как она печатает строку, а не отдельный символ.fprintf(stdout,
%s\n,
nothing is printed)
не может быть заменена наfputs
, так как она печатает строку и символ новой строки, а не просто символ.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д