如果我尝试这样的话:
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
ofstream output;
output.open("message.dat");
output << "hello";
}
我收到一条消息:聚合'std :: ofstream output'的类型不完整,无法定义。
如何创建.dat文件并像往常一样写入.txt文件?
答案 0 :(得分:6)
我认为您认为.dat
是二进制文件。好的,它总是取决于你想在那个文件中写什么。我可以提供一个关于编写二进制文件的一般示例。
ofstream write_file;
write_file = ofstream( this->location, ios::out | ios::binary );
for( size_t i = 0; i != file_size ++i )
{
// use write_file.write() to add bytes into your binary file.
// e.g the line below will write empty chars to your binary file
write_file.write( "", 1 );
}
write_file.close();
在IDEONE上查看有效的代码。
有人评论说,您必须包含<fstream>
才能使用文件流。我认为你的错误来自你文件中的错误。此外,如上所述,.dat
文件应该是二进制文件。 open()
的原型是:
void open (const string& filename, ios_base::openmode mode = ios_base::out);
// with const &string as parameter since C++11
因此,正如您所看到的,openmode
设置为ios_base::out
,您应该ios_base::binary | ios_base::out