以下代码在linux(g ++)中编译和运行时没有任何效果。这是一个可移植性问题吗?我怎样才能使它发挥作用?
ofstream myfile;
myfile.open("myfile.txt", fstream::in | fstream::out | fstream::app);
答案 0 :(得分:3)
std::ofstream
是输出流。根据定义,它不能输入数据。因此将fstream::in
作为标志是错误的。
如果您想要输入和输出的文件流,请使用std::fstream
。
不可否认,这可能不是造成问题的原因。但这是错误的。
答案 1 :(得分:0)
最常见的原因是没有写入文件的原因是因为您忘记在完成后忘记关闭流:myfile.close();
在程序退出之前的某个地方。这会刷新缓冲区并确保所有内容都实际写入文件,而不是沿途放置任何缓存。