2015-01-02 56 views
1

所以,如果我有這樣的事情在一個txt文件:如何將數據添加到一個txt文件的新線

file.txt的; 5; 12:40

文件2 .TXT; 6; 13:40

我想在程序中加入另一行如

「file3.txt; 7; 12:40」

爲了如:

file.txt的; 5; 12:40

FILE2.TXT; 6; 13點40

file3.txt; 7; 12:40

然而,當我我的代碼做,它停留像:

file.txt的; 5; 12:40

FILE2.TXT; 6; 13:40file3.txt; 7; 12: 40

我的代碼(我把有關是否如果文件存在與否更簡單,看看真正的代碼的):

printf("Insert the name of the file\n"); 
printf("[Name] "); 
getchar(); 
scanf("%[^\n]s",&orderNameFile); 
printf("\n"); 

orderFile = fopen("order.txt","a"); 
contentFile = fopen(orderNameFile,"r"); 

// This is supposed to be into an if 
printf("Insert the seconds for presentation\n"); 
printf("[Time in seconds] "); 
scanf("%d",&orderSecondsFile); 

printf("Insert the time\n"); 
printf("[Time HH:MM (Hour:Minutes)] "); 
getchar(); 
scanf("%[^\n]s",&orderTimeFile); 
printf("\n"); 

fprintf(orderFile,"%s;%d;%s\n", orderNameFile, orderSecondsFile, orderTimeFile); 
opOrder = 1; 

fclose(contentFile); 

我試圖把\ n出fprintf中,並再拍,把它放在之初,就結束,但它不會讓一個進入到一個txt文件。

的如何做到這一點任何想法?

輸出:

file.txt的; 5; 12:40

FILE2.TXT; 6; 13:40file3.txt; 7; 12:40

我想要什麼:

file.txt; 5; 12:40

file2.txt; 6; 13:40

file3。TXT; 7; 12:40

+2

看來, '\ n' 爲在文件的結尾缺失。最簡單的解決方案是將「\ n%s;%d;%s \ n」打印到orderFile。更通用的解決方案是查看orderFile的最後一個字符並檢查它是否爲'\ n',並且只有在不是時纔打印。否則,您可以只打印「\ n%s;%d;%s」,以便尊重之前不以'\ n'結尾的格式,因此下次再次追加時不會以雙EoL結尾。 –

+0

「wb」將重新創建存在的內容,所以這是無法解決的。 「\ n%s;%d;%s \ n」的嘗試也是如此,但它與沒有任何的相同,不會有任何輸入。 – Ran

+0

看起來你已經回答了問題Alegnem。 +1 :-)我認爲這應該是對冉的回答。 – Neil

回答

1
orderFile = fopen("order.txt","wt"); 

fprintf(orderFile,"\r\n"); 
+0

中插入了一個前導''(空格)。謝謝,\ r \ n完美地工作。你可以向我解釋一下\ r是什麼意思? – Ran

+0

@Ran你在窗戶上嗎? – Gopi

+0

是的,我。你爲什麼要問? (對不起,爲軟件的其他部分創建代碼) – Ran

相關問題