我有一个类似
的文件这是第1行
这是第2行
我有一个字符串This is line 0
。如何将此字符串写入文件的开头,以便文件的内容现在为:
这是第0行
这是第1行
这是第2行
我目前有
ifstream myfile("lunch.txt");
myfile.seekg(0,ios::beg);
myfile << "This is line 0";
但它没有按预期工作。
答案 0 :(得分:1)
写入std::ifstream
(用于输入)无效。更改代码以使用std::ofstream
来编写输出:
ofstream myfile("lunch.txt");
// ^^^^^^^^
// myfile.seekg(0,ios::beg); <<< this code isn't necessary
myfile << "This is line 0";
要解决有关在现有内容之前插入的问题,请先阅读文件,同时将内容保存在例如一个std::vector<std::string> lines;
。然后再次打开文件,写下第一行,然后跟上lines
中保存的值。
答案 1 :(得分:0)
您无法插入文件的开头并让现有内容自动移动。
最好的办法是打开一个新文件并写下“这是第0行”,然后复制现有文件的内容。