1

我想从用户(多行)读取输入并使用 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() & fgets() 的使用有什么问题吗?

4

1 回答 1

3

由于C-C可能会终止进程,因为缓冲,这些行不会到达文件(除非它们很多并且它们填满了缓冲区)。

您应该以C-D(Unix) 或C-Z(Dos) 结束输出,而不是C-C.

附带说明:fgets不剥离换行符并fputs添加自己的换行符。但我想你会注意到:-)

于 2011-11-16T06:04:32.287 回答