Вот моя проблема. Выходной файл состоит из семи строк, например:Чтение количества строк в выходном файле
Dinda
Jane
is
so
beautiful
and
handsome.
Нам предлагается прочитать, сколько строк имеет выходной файл. Но две строки должны учитывать только 1. Таким образом, точное число строк в этой программе должно быть четыре (включая последнюю одну строку). Как я должен читать две строки за раз? Это то, что я получил до сих пор.
#include<stdio.h>
main()
{
FILE *fp;
char filename[25];
char c[25][25];
int a;
clrscr();
printf("Enter File Name: ");
gets(filename);
if(filename==NULL)
{
printf("\nERROR! File Doesn't Exist!");
}
else
{
fp=fopen(filename,"r");
while(!feof(fp))
{
fgets(&c,sizeof(c),fp);
printf("%s",c);
if(strlen(c))
{
a++;
}
}
printf("The Number of Words are: %d",a);
fclose(fp);
getch();
}
}
Не используйте 'gets'. И тест 'if (filename == NULL)' никогда не будет правдой. Массивы не являются указателями. –
Подсчитайте количество строк, используя fgets, а затем распечатайте (n + 1)/2 в результате. –
['while (! Feof (fp))'] (https://stackoverflow.com/questions/5431941/while-feof-file-is-always-wrong/5432517#5432517) - это то, что вы хотите исправить правильно Теперь. Это неправильно, и вам не помогает ваше предположение 'fgets' * work * без проверки проверки вообще. – WhozCraig