テキストモードとバイナリモード
違いは、改行コードの取り扱いのみ。
テキストモードでは、違うOSでも改行をそれぞれ環境に合った形で読み換えてくれる。
Window "\r\n" MacOS "\r"
良く、バイナリモードの説明で
#include#include #include using namespace std; int main() { fstream file; file.open("binary.txt", ios::out | ios::binary); if(! file.is_open()) { return EXIT_FAILURE; } int n = 0x414243; file.write((const char*)&n, sizeof n); file.close(); }
となっていてびびるが、何のことはなく、intから、charに型変換されているので、0x41 = Aとなり、binary.txtでみると、Aと表示されているように見えるだけ。
だから、char[] = "0x414243"みたいにすると、文字と認識されるので、binary.txtには、0x414243と書きこまれる。
一応、意味のあるファイルはテキストファイル。意味のないファイルはバイナリファイルということらしい。