以下のコードに少し問題があり、何がうまくいかなかったのか、なぜそれが何を表示しているのかを理解することはできません。助けや支援をいただければ幸いです。本来は 5 行のテキストを入力して、その 5 行を画面に表示できるはずなのですが、4 行しか入力できず、4 行表示されてしまいます。助けてください!
#include <stdio.h>
int main()
{
char string[100];
char filename[20];
int n=0;
FILE *fp;
printf(" Enter the name of file to open ");
scanf("%s",filename);
fp =fopen(filename,"wr");
if(fp==NULL)
{
printf("unable to open File");
}
for(n=1;n<6;n++)
{
printf("\nEnter line %d:",n+1);
gets(string);
fputs(string,fp);
fputs("\n",fp);
}
fclose(fp); /*close the file*/
fp =fopen(filename,"r");
if(fp==NULL)
{
printf("unable to open File");
}
for(n=1;n<6;n++)
{
fgets(string,100,fp);
printf("%s",string);
}
fclose(fp); // close after reading.
return 0;
}