テキストモードとバイナリモード

違いは、改行コードの取り扱いのみ。
テキストモードでは、違う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と書きこまれる。

一応、意味のあるファイルはテキストファイル。意味のないファイルはバイナリファイルということらしい。