バイナリファイル入出力

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
こまいぬ

バイナリファイル入出力

#1

投稿記事 by こまいぬ » 13年前

こんにちは
C++のことで質問なのですが、よろしいでしょうか?
現在、C++でプログラミングしているのですが、バイナリファイルの入出力について質問があります。
ofstreamやifstreamでファイルを開くときにバイナリモードで開く場合は引数にios::binaryを指定しますが
何も指定しなくてもなぜか問題なく動きます。これはどういうことなのですか?

管理人

Re:バイナリファイル入出力

#2

投稿記事 by 管理人 » 13年前

C++はよくわからないのですが・・

何も指定しなかったらバイナリではなくテキストじゃないですか?
すみません、わかりません(_ _|||)

http://www.kumei.ne.jp/c_lang/cpp/cpp_26.htm
http://www.geocities.jp/ky_webid/cpp/library/033.html
http://www5c.biglobe.ne.jp/~ecb/cpp/cpp00.html

この辺が参考になれば・・

GPGA

Re:バイナリファイル入出力

#3

投稿記事 by GPGA » 13年前

こまいぬさんのどの環境でプログラムをしていますか?

ofstreamの引数にios::binaryを指定しない場合、テキスト出力として扱われます。
テキスト出力の際のバイナリ出力との違いですが

Windowsでプログラムを組まれているなら、0x0Aの値が0x0D,0x0Aになります。
Macでプログラムを組まれているなら、0x0Aの値が0x0Dになります
Unix,Linuxでプログラムを組まれているなら、たぶん何も変わりません。
もし、出力するデータの中に0x0Aの値がないのであれば
テキスト出力とバイナリ出力は同じ動作をします。

こまいぬ

Re:バイナリファイル入出力

#4

投稿記事 by こまいぬ » 13年前

なるほど、バイナリ出力とテキスト出力の違いは改行文字の扱い方が違うだけのようですね。ありがとうございました。
今までバイナリファイルを扱ったプログラムを書いたことがなかったので、その辺の仕組みをよく理解していませんでした。

閉鎖

“C言語何でも質問掲示板” へ戻る