有没有办法将数据存储到以下内容中:
#include <fstream>
int main() {
std::ofstream output;
std::ifstream input("myfile.txt");
int a;
for (int i=0;i<100;i++) {
input >> a;
output << a+1;
}
input.close();
output.open("myfile.txt");
// Save everything to the file and close it
}
我想基本上更改文件中的数字(&#34; myfile.txt&#34;),但不创建新文件。是否需要stdio?
答案 0 :(得分:4)
您可以先写入ostringstream
,这是一个内存输出流。然后将内容写入另一个流,例如:
std::ostringstream in_memory_stream;
// fill in_memory_stream
// ...
// copy in_memory_stream into myfile.txt
std::ofstream file("myfile.txt");
file << in_memory_stream.rdbuf();
或者,写入具有临时名称的文件。文件完成后,将其刷新并将其重命名为最终名称。
答案 1 :(得分:0)
您可以将数据保存在内存中,然后覆盖旧文件
ifstream input("myfile.txt");
int a;
vector<int> vin;
for (int i=0;i<100;i++) {
input >> a;
vin.push_back(a+1);
}
input.close();
ofstream out("myfile.txt");
for(int i=0;i<vin.size();++i)
{
out<<vin[i]<<endl;
}