2014-02-28 184 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