Консоль открывается и тут же закрывается, ничего не напечатав - 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, так как она печатает строку и символ новой строки, а не просто символ.