Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何在文本文件中添加多行_C_File_File Io_Append - Fatal编程技术网

C 如何在文本文件中添加多行

C 如何在文本文件中添加多行,c,file,file-io,append,C,File,File Io,Append,我正在尝试编写一个程序,它可以显示文件的内容,然后由用户动态地将内容附加到C语言中的文本文件中 下面是代码,但不知何故,它适用于单行输入,而不适用于多行输入,即使在循环中也是如此 fobj=fopen("test3.txt","a"); if (fobj==NULL) { printf("Error opening the file. "); exit(0); } int contd; char buff1[120]; char *chptr; do { printf("Ente

我正在尝试编写一个程序,它可以显示文件的内容,然后由用户动态地将内容附加到C语言中的文本文件中

下面是代码,但不知何故,它适用于单行输入,而不适用于多行输入,即使在循环中也是如此

fobj=fopen("test3.txt","a");
if (fobj==NULL)
 {
  printf("Error opening the file.  ");
  exit(0);

 }
int contd;
char buff1[120];
char *chptr;
do
{
printf("Enter line : \n");

gets(buff1);

fputs(buff1,fobj);

printf("Enter Continuation code : ");
scanf("%d",&contd);

}while(contd!=0);
发件人:

因此,您必须手动添加新行:

gets(buff1);
strcat(buff1, "\n");

您面临的是典型的stdin问题。您可以使用
fflush(stdin)在GET之前,应该可以工作。

为每一行的尾部添加换行符当然我已经添加了这一点,但问题是当循环第一次迭代时,它接受行的输入,但在第一次迭代后,它只要求继续代码,而不是行的输入。。。很抱歉,这是我的第一篇帖子,所以任何错误都很遗憾。@user2349530这不是故意的吗?在fputs之后,您要求在循环中输入延续代码。如果输入的内容不是0,循环将继续要求您输入新行inputvery true,但主要目的是从用户处获取输入。在第一次迭代后,它直接跳转输入延续代码,而不是从用户处获取输入。。简单来说,它不允许用户键入输入。。
gets(buff1);
strcat(buff1, "\n");