你如何用C ++写入.dat文件?

时间:2014-02-28 06:44:44

标签: c++

如果我尝试这样的话:

#include<iostream>
#include<fstream>
using namespace std;

int main()
{
    ofstream output;
    output.open("message.dat");

    output << "hello";
}

我收到一条消息:聚合'std :: ofstream output'的类型不完整,无法定义。

如何创建.dat文件并像往常一样写入.txt文件?

1 个答案:

答案 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