无法理解程序(如下)
我对这句话fputs("\n",fp)
感到有点困惑
例如。让我输入:
你在下面是什么并不重要 它是你做的那个定义你的。
如果我没有提及fputs("\n",fp)
,则该字符串会出现在一行中。但是使用代码,它会保存为键入。
现在的问题是如何将\n
插入到所需的位置,因为通常\n
应该附加在文本的末尾。
任何帮助都会受到重视。
int main()
{
FILE *fp;
char s[80];
fp=fopen("abc.txt","w");
if(fp==NULL)
{
puts("Cannot open file");
exit(1);
}
printf("\nEnter a few lines of text:\n");
while(strlen(gets(s))>0)
{
fputs(s,fp);
fputs("\n",fp);
}
fclose(fp);
return 0;
}
答案 0 :(得分:7)
gets
(不应使用且实际上已从最新的C标准中删除)不会将\n
保存在其缓冲区中(而fgets
会这样做。)
与fputs
不同,puts
不会在其写入的字符串末尾自动插入一个。因此,在输出每个键入的行后添加fputs("\n", fp);
(或fputc('\n', fp)
),可以在文件中插入缺少的换行符。
答案 1 :(得分:3)
fputs
不会自动为输出添加换行符(与puts
相反)。