2014-02-28 161 views
-1

如果我尝试类似:如何在C++中写入.dat文件?

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

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

    output << "hello"; 
} 

我得到一个消息:总'的std :: ofstream的输出具有不完整的类型,不能被定义。

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

+0

我编译罚款。只要你包含'',就应该定义'std :: ofstream'。你使用什么编译器? – Brian

+0

如果您发布有关任何错误消息的问题,请在问题中包含* complete *和*未经编辑的*错误消息,并告诉我们它来自何处(编译器?链接器?运行时程序?)您提供的消息需要更多的上下文。 –

+0

查看这里的例子:http://www.cplusplus.com/reference/fstream/ofstream/ofstream/ – yasouser

回答

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

+0

示例代码有行 #include