2015-02-07 76 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