如何使用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
会添加自己的换行符。 但我想你会注意到:-)