Я пытаюсь прочитать файл из моего .cpp-файла. Я использую библиотеки C, поэтому не путайте их.fgets только чтение первой строки файла
Таким образом, проблема такая же ясная, как и то, что я сказал в названии. Метод fgets может читать первую строку, но когда дело доходит до второй строки, она не может читать ни вторую строку, ни остальную часть файла (так как она выходит, когда возникает проблема).
Вы можете найти соответствующую часть кода:
void read_input()
{
int i = 0, N = 5;
char str[STR_SIZE], line[STR_SIZE];
FILE *fp;
fp = fopen("out", "r");
if (!fp)
{
fprintf(stderr, "error: file could not be opened\n");
exit(1);
}
for (i = 0; i<2; i++)
{
if (fgets(str, STR_SIZE, fp) == NULL)
{
fprintf(stderr, "error: failed at file reading\n");
exit(1);
}
if (feof(fp))
{
fprintf(stderr, "error: not enough lines in file\n");
exit(1);
}
if ((sscanf(str, "%s", line) != 1))
{
fprintf(stderr, "error: invalid file format\n");
exit(1);
}
printf("%d\t%s\n", i, line);
fclose(fp);
}
}
'он не может прочитать' ... любезно объяснить. –
Исправлено, извините! –
Сколько строк в файле? Какие программы выводятся? – fluter