void DataSaver::save( const std::vector<long>& vec )
{
using std::ios_base;
std::ofstream file;
file.open( "/home/david/Desktop/test", ios_base::out | ios_base::binary );
for(int i = 0; i < vec.size(); i++)
file << vec.at( i ) << "\00\01\10\00";
file.close();
}
这会导致一些错误:
g++ main.cpp datasaver.cpp
datasaver.cpp: In member function ‘void DataSaver::save(const std::vector&)’:
datasaver.cpp:11:16: error: aggregate ‘std::ofstream file’ has incomplete type and cannot be defined
datasaver.cpp:12:41: error: incomplete type ‘std::ios_base’ used in nested name specifier
datasaver.cpp:12:57: error: incomplete type ‘std::ios_base’ used in nested name specifier
我包含了 iostream
、ofstream
和 vector
谁能解释一下哪里出了问题?
最佳答案
你可能需要
#include <fstream>
因为文件流实际上是在其中定义的
关于使用 ios_base 和 ofstream 时出现 C++ 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19469521/