C 如何在文本文件中添加多行
我正在尝试编写一个程序,它可以显示文件的内容,然后由用户动态地将内容附加到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
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");