私はベンラッセルの答えが好きです。これは、cコードの最後の行を繰り返さないようにするための私のバージョンです。それは動作しますが、それがこの動作を行う必要がある条件のため、理由はわかりません if (fgets != NULL)
。
int main ()
{
FILE* pFile;
char name[41] = "fileText04.txt";
char text[81];
int i;
pFile = fopen("fileText04.txt", "wt");
if (pFile == NULL)
{
printf("Error creating file \n");
exit(1);
}
else
{
for (i=0; i<5; i++)
{
printf("Write a text: \n");
fgets(text, 81, stdin);
fputs(text, pFile);
}
}
fclose (pFile);
pFile = fopen(name, "rt");
if (pFile == NULL)
{
printf("File not found. \n");
exit(2);
}
while (! feof(pFile))
{
fgets(text, 80, pFile);
if (feof(pFile)) // This condition is needed to avoid repeating last line.
break; // This condition is needed to avoid repeating last line.
if (fgets != NULL)
fputs(text, stdout);
}
fclose (pFile);
return 0;
}
どうもありがとう、ハイメ・ダヴィウ