0
我在C++中編寫了一個二進制文件,下面的代碼。它輸出文件,但是當我打開它。我看到它是一種ASCII格式。我究竟做錯了什麼 ?如何將字符串消息保存爲二進制文件?寫入二進制C++錯誤
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <string>
using std::ios;
void writeFile(const std::string &fileName, const std::string data)
{
std::ofstream ofs;
ofs.open(fileName.c_str(), ios::out | ios::binary);
if (ofs.is_open())
{
ofs.write(data.c_str(),data.size());
ofs.close();
}
else
{
std::cerr <<"Error while writing File: "<<fileName<<std::endl;
exit (EXIT_FAILURE);
}
}
int main(int argc, char const *argv[])
{
/* code */
std::string message = "This should be binary";
writeFile("sample", message);
return 0;
}
你知道如何將ascii字符串寫成二進制文件嗎?那麼它是否也需要在閱讀時重新轉換爲字符串? – itsnevertoobadtoaskforhelp
@itsnevertoobadtoaskforhelp:你已經做到了。字符串的字面字節存儲在文件中。關鍵是字面字節是ASCII文本,所以它看起來像文本。重讀ShadowRanger的答案。 –