テキストファイルの表現方法は、オペレーティングシステムによって異なります。たとえば、UNIX 環境における行末は、改行文字 '\n' で表します。また、PC ベースのシステムでは、行末は、キャリッジリターン '\r' と改行 '\n' で表します。この 2 種類のオペレーティングシステムでは、ファイルの末尾も同様に異なります。他のオペレーティングシステムでもそれぞれに特色があります。
オペレーティングシステム間のプログラムの移植を促進するために、入出力時に自動変換をすることができるようになっています。たとえば、キャリッジリターンシーケンスや改行シーケンスは、'\n' の 1 文字に変換することができ、'\n' は出力時に "\r\n" に展開することができます。バイナリモードに対して、この変換モードをテキストモードといいます。バイナリモードでは、このような変換は行われません。
モードフラグ ios_base::binary を設定すると、ファイルがバイナリモードで開かれます。つまり、"\r\n" を '\n' に変換するといった、前述の自動変換機能が無効になります。 13
バイナリファイルを処理する場合は、binary モードフラグを設定してください。これにより、暗黙のシステム固有の変換が実行されるのを防ぎます。
バイナリオープンモードのはたらきについては、誤解しやすいので注意してください。バイナリモードでは、挿入子や抽出子は挿入されません。したがって、挿入子や抽出子による書式設定も行われません。バイナリ入力とバイナリ出力を実行するには、basic_istream <charT> ::read() と basic_ostream <charT> ::write() だけを実行します。
Copyright (c) 1998, Rogue Wave Software, Inc.
このマニュアルに関する誤りのご指摘やご質問は、電子メールにてお送りください。
OEM リリース, 1998 年 6 月