2010-11-15 58 views
0

我正在通過以下代碼單擊按鈕來創建配置文件。如何在寫入文件時放置換行符

fputs( "AutoStart = " +strAutoWinStart + 
     "AutLogHistory = " +strAutoLogSvrHistory + 
     "AutoScan= " +strAutoScanDetect + 
     "AutoMount = "+ strAutoMount + 
     "AutoOpen = "+ strAutoOpenWin + 
     "LastConnectedSvr = "+ strAutoDetLastConSvr,pFile); 

和輸出文件看起來如下:

自動啓動= 1AutLogHistory = 0AutoScan = 1AutoMount = 0AutoOpen = 1LastConnectedSvr = 0

相反,我需要我的輸出應該有一個換行符在每個參數和外觀如下:

AutoStart = 1
AutLogHistory = 0
自動掃描= 1
AUTOMOUNT = 0
的AutoOpen = 1
LastConnectedSvr = 0

+1

這真的是你的代碼嗎? 'fputs'接受一個'const char *'寫入文件。或者你的'strName'變量是一些字符串類類型(需要能夠使用'+'連接它們),或者它們是字符串文本(它們需要能夠將它們傳遞給'fputs')。他們不能兼而有之。 – 2010-11-15 05:28:23

+0

@ James McNellis,是的,我的strName變量是stringclass類型,我用+ – Simsons 2010-11-15 05:55:05

回答

2

添加爲 「\ r \ n」(或 「\ n」 表示UNIX風格的換行符)在文件中創建一個新行。

Windows上的某些編輯器(如記事本)不能很好地處理UNIX樣式的換行符,在一行中顯示所有內容。爲了實現跨操作系統的最大可移植性,請使用「\ n」。對於Windows中的最大可用性,請使用「\ r \ n」。

更好:使用std :: ofstream和std :: endl - 畢竟你的問題被標記爲C++。

+0

連接它們。C++ IOStreams庫執行行結束轉換,以便將'\ n'寫入文本模式流導致平臺行結束寫入流。 C I/O函數不能做這種翻譯嗎? – 2010-11-15 05:37:53

+0

@詹姆斯:就我的理解他們*可以*,但他們不是*必需的* - 如何在外部表示換行符超出規範的範圍。可能很容易被誤解。 – 2010-11-16 23:55:02

相關問題