Я новичок в C, я просто пытаюсь прочитать простой текстовый файл, который я создал в C. Я сделал этот файл, щелкнув новый -> пустой файл -> сохранив его в нужном месте, а затем добавив расширение файла (.txt) текстовый файл содержит образец доски судоку, а полное имя файла — sudokuchar.txt.
Код, который я должен прочитать из файла и распечатать его:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fpointer = fopen("sudokuchar.txt", "r");
char input[100];
while(fgets(input,100,fpointer))
{
printf("%s",input);
}
fclose(fpointer);
}
поэтому, когда я компилирую, программа ничего не печатает и возвращает -1. Я предполагаю, что что-то не так с файлом, который я пытаюсь прочитать?? если бы кто-то мог помочь, это было бы очень признательно.
fopen
вернет NULL. Не проверив это и довольно ошибочно предполагая, что это только что сработало, передача NULL в качестве указателя файла наfgets
вызывает неопределенное поведение. Казалось бы, некоторые проверки ошибок и изменения конфигурации запуска во время выполнения в порядке. - person WhozCraig   schedule 01.08.2016main ()
является функцией типаint
и должна возвращать оболочке либо нулевое, либо положительное 8-битное значение при выходе (например,return 0;
, если нет ошибок,1-255
при ошибке). Также обратите внимание, что правильными объявлениями дляmain
являются либоint main (void) {...
, либоint main (int argc, char *argv[]) {...
(вы увидите эквивалентchar **argv
вместо*argv[]
, и некоторые компиляторы принимают дополнительные непереносимые аргументы). Это не вызывает сбой чтения (наиболее вероятен сбойfopen
), но правильное понимание основ помогает. - person David C. Rankin   schedule 02.08.2016