2012-11-01 24 views
0

我在C++中使用以下程序:將文本寫入文件,包括空格

此程序有兩個問題。首先,如果用戶在文本中使用空格,那麼第一個空格之後的數據不會被保存。我怎麼解決這個問題?

其次,我想要在文本文件中添加一個會話文本和另一個文本文本之間的換行符。我如何指導程序這樣做?謝謝:)

回答

0

您可以使用getline一次獲取用戶輸入的行。至於會話之間的換行符,不能在用戶輸入文本後直接在文件中寫入新行。這樣下次打開文件時,您將在換行後開始。

0

第一個問題:不要使用cin >>文本。這將讀取一個字符串,直到找到第一個空格。您可能想要使用cin.getline

第二個問題:在將用戶輸入寫入文件後,您可以簡單地輸出< < endl。

如果您不希望文件末尾有換行符,則需要區分新文件和現有文件。爲了做到這一點,修改你的write_to_file函數來接收第三個參數,告訴它文件是否已經存在。如果它存在,則在將用戶的輸入寫入文件之前,執行endl。

+0

呃......你能給我如何解決第二個問題的例子。我不知道我的理解是否正確:謝謝 – Matthew

0

在write_to_file函數中嘗試使用fwrite而不是fprintf。雖然語法有點不同。

fwrite(data,size_t,count,fp);

這會寫從數據大小爲size_t的項目計數爲FP(文件指針)