使用 ios_base 和 ofstream 时出现 C++ 错误

Dav*_*log 1 c++ file std

void DataSaver::save( const std::vector<long>& vec )\n{\n    using std::ios_base;\n    std::ofstream file;\n    file.open( "/home/david/Desktop/test", ios_base::out | ios_base::binary );\n    for(int i = 0; i < vec.size(); i++)\n        file << vec.at( i ) << "\\00\\01\\10\\00";\n    file.close();\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

这会导致一些错误:

\n\n
\n

g++ main.cpp datasaver.cpp
\n datasaver.cpp: 在成员函数 \xe2\x80\x98void DataSaver::save(const std::vector&)\xe2\x80\x99:
\n datasaver.cpp:11:16:错误:聚合 \xe2\x80\x98std::ofstream 文件\xe2\x80\x99 的类型不完整,无法定义
\n datasaver.cpp:12:41:错误:类型不完整 \xe2\x80\x98std::ios_base\ xe2\x80\x99 用于嵌套名称说明符
\n datasaver.cpp:12:57: 错误: 不完整类型 \xe2\x80\x98std::ios_base\xe2\x80\x99 用于嵌套名称说明符

\n
\n\n

我包括iostream,ofstreamvector

\n\n

有人可以解释一下出了什么问题吗?

\n

Rah*_*thi 5

你可能需要

#include <fstream>
Run Code Online (Sandbox Code Playgroud)

因为文件流实际上是在其中定义的