これは私のコードです:
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
FILE *p;char c[79];
clrscr();
p = fopen("file1.dat","w");
printf("\nenter lines and enter end1 to end ");
scanf("%s",c);
if (strcmp(c,"end1") != 0)
do
{
fputc('\n',p);
fputs(c,p);
gets(c);
} while(strcmp(c,"end1")!=0);
fclose(p);
p = fopen("file1.dat","r");
printf("lines in file:\n");
while(!feof(p))
{
fgets(c,80,p);
printf("%s\n",c);
}
fclose(p);
return 0;
getch();
}
私の問題は、入力する(そしてファイルに書き込む)ときです
hello
my name is abc
次に end1 と入力して終了し、ファイルの内容が読み取られて印刷されると、次のような出力が得られます
hello
my name is abc
改行が 1 行ではなく 2 行表示されるのはなぜですか? また、この問題を解決するにはどうすればよいですか?