2013-05-04 45 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

相關問題