2015-02-07 79 views
-1

如何向.txt文件添加無固定文本?這樣我可以添加手動添加到文件的文本。輸出文本C++

#include <iostream> 
#include <fstream> 
using namespace std; 
int main() { 
int x; 

    ofstream myfile; 
    myfile.open ("teksts.txt", ios::app); 
    myfile << x; 
    myfile.close(); 

return 0; 
} 

而且後的文件添加文本到.txt文件,我怎麼可以暫停運行窗口,它會說:「文件已更新!」,只有後,我按回車,將退出?

+1

您不能將變量寫入文件,然後稍後將其替換,就像您無法將變量寫入cout一樣,然後再將其替換。 – David 2015-02-07 12:35:08

+0

有沒有其他的方法可以做到這一點與變量?一整天都在看教程,但到目前爲止它還沒有工作,所有事情都有數字或固定的文本輸出。 – DoriaLatro 2015-02-07 12:40:52

+0

這就是它的工作原理。我只是在答案中加入了幾個選項,但是您可能需要解析文件才能做到您想要的。 – David 2015-02-07 12:54:20

回答

0

你需要給XA值將它發送到文件(目前你只是發送垃圾值)

myfile.open ("teksts.txt", ios::app); 
    cout << "Please enter text to write to file: "; 
    cin >> x; 
    myfile << x; 

只需添加如下語句COUT < <之前「中的文件已被更新!」; 。

查看輸出使用getchar();

如果您想在每次打開文件時覆蓋內容,請改爲在ios :: out模式下打開它。目前您正在使用ios :: app。

我還建議將x改成一個字符串,這樣你就可以保存文本。

+0

如何在每次打開程序時添加一個可以更改的值?所以它不會將相同的文本/值保存到.txt文件中? – DoriaLatro 2015-02-07 12:48:29

+0

@DoriaLatro你想寫什麼?用戶輸入? (這就是這個答案的作用)還是一個隨機數或什麼的? – Blob 2015-02-07 12:59:49

+0

我認爲文件需要以覆蓋模式打開。那就是「每次新」的意思。 – CreativeMind 2015-02-07 13:04:18

0

您不能將變量寫入文件,然後稍後將其替換,就像您無法將變量寫入cout一樣,然後再將其替換。

如果您打算打開一個文件,寫一些東西,然後重新打開它,您需要使用一個唯一的文本字符串,然後替換它。

myfile << "ABC %%UNIQUE_STRING%% DEF"; 

再後來......

string uniqueValue = "%%UNIQUE_STRING%%"; 
string stringObject; 
getline(myfile, stringObject); 
stringObject.replace(stringObject.find(uniqueValue), uniqueValue.length(), "New Value"); 

如果你正在尋找的東西自動,每次程序運行時,(因爲上面只能使用一次),你必須要更聰明。一個可能的選擇是總是寫入相同的字符索引和相同數量的字符。

+0

感謝您的信息。 – DoriaLatro 2015-02-07 12:59:12