【发布时间】:2013-11-20 14:04:49
【问题描述】:
无法理解程序(如下)。
我对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;
}
【问题讨论】:
-
fputs 写入您给它的字符串,它不会在该字符串上附加任何字符。另一方面, puts 确实附加了一个换行符。这是一个不一致的 api。
-
想一想,gets() 和 fgets() 的区别是一样的(除了 fgets() 允许缓冲区大小)。
-
如果您看到错误
Type "char" is not compatible with parameter type "const char*",请确保您使用了双引号"\n"。
标签: c