fputs()在c中的换行行为
理解程序有困难(如下)。fputs()在c中的换行行为,c,C,理解程序有困难(如下)。 我对语句fputs(“\n”,fp) 让我键入: 你的内心是什么并不重要 你所做的决定了你 如果我没有提到fputs(“\n”,fp)字符串将显示在一行中。但在代码中,它被保存为键入的 现在的问题是如何将\n插入所需的位置,因为通常\n应该附加在文本的末尾 任何帮助都将不胜感激 int main() { FILE *fp; char s[80]; fp=fopen("abc.txt","w"); if(fp==NULL) {
我对语句
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
不会自动向输出中添加换行符(与put
相反,后者会自动添加换行符) gets
(不应使用,并且实际上已从最新的C标准中删除)不会将\n
保存在其缓冲区中(而fgets
会保存)
和
fputs
,不同于put
,fputs不会自动在写入的字符串末尾插入一个。因此,通过添加一个fputs(“\n”,fp)
(或fputc('\n',fp)
)输出每个键入的行后,在文件中插入缺少的换行符。fputs写入您给定的字符串,它不会向该字符串追加任何字符。另一方面,put确实附加了一个换行符。这是一个不一致的api。考虑到这一点,gets()和fgets()之间的差异是相同的(除了fgets()允许缓冲区大小)。如果您看到错误类型“char”与参数类型“const char*”
,请确保使用双引号“\n”
。