如何使用fgets从用户读取多行输入并使用C中的fput将其写入文件?

我想从用户读取输入(多行)并使用fputs()将其写入文件。

这是我的代码

#include #include 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()和fgets()有什么问题吗?

由于CC可能会杀死进程,因为缓冲,行不会到达文件(除非它们有很多并填充缓冲区)。

你应该用CD (Unix)或CZ (Dos)结束输出,而不是CC

作为旁注: fgets不会剥离换行符,而fputs会添加自己的换行符。 但我想你会注意到:-)