2013-05-04 80 views
0

我试图写一个程序,它可以显示文件的内容,然后由用户动态地添加内容到一个文本文件中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); 
+0

为行的每一个尾部添加换行符char – matzone 2013-05-04 10:19:29

回答

0

您所面临的典型问题,标准输入。得到之前你可以使用fflush(stdin);,应该可以工作。

+0

非常感谢它的工作..再次感谢 – user2349530 2013-05-04 11:53:13

+0

很高兴它为你工作 – Sudhee 2013-05-04 12:05:02

0

gets

The newline character, if found, is not copied into str. 

所以,你必须手动添加新行:

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

当然我已经添加了,但问题是当循环第一次迭代它需要输入行时,但在第一次迭代后它只是要求继续代码不适用行输入...我很抱歉,但这是我的第一篇文章,所以任何错误后悔.. – user2349530 2013-05-04 10:51:59

+0

@ user2349530是不是这是打算?在fputs之后,你要求循环内的继续代码。如果输入的内容不是0,循环会继续要求您输入新的行输入 – typ1232 2013-05-04 10:57:57

+0

非常正确,但主要目的是从用户那里接受输入。第一次迭代后直接跳转到输入延续代码它没有采取输入形式的用户..简单地说,它不会让用户键入输入.. – user2349530 2013-05-04 11:49:10

相关问题