我想读取用户的输入(多行)并使用fputs()将其写入文件。
这是我的代码
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp;
char s[25];
fp=fopen("myname","w");
if(fp==NULL)
{
perror("Error opening file\n");
exit(1);
}
while(fgets(s,25,stdin)!=NULL)
fputs(s,fp);
fclose(fp);
return 0;
}
从用户那里获得输入后,我使用Ctrl + C来关闭程序的输入提示(我正在使用linux)。然后,如果我打开文件,它什么都没有。我怎么能解决这个问题?
使用fputs()&amp;有什么问题吗?与fgets()?
答案 0 :(得分:3)
由于C-C
可能会杀死进程,因为缓冲,行不会到达文件(除非它们有很多并填充缓冲区)。
您应该使用C-D
(Unix)或C-Z
(Dos)结束输出,而不是C-C
。
作为旁注:fgets
不会删除换行符,而fputs
会添加自己的换行符。但我想你会注意到: - )