
No.1ベストアンサー
- 回答日時:
バイナリデータの中に「EOF」が入っている場合それを「EOF]と認識してしまうと、その後のデータを読めね九なってしまいます。
そこで、データの容量をチェックして総てのファイルを処理するようにしているのです。
ありがとうございました。
char c = fgetc(...);
if(c == EOF){....
のように、
して不安定なエラーが出て、
ぎもんがしょうじたのです。
もちろん
int c = fgetc(...);
if(c == EOF){....
と修正したら
エラーは出なくなったのですが、
EOFとは何だろう?
と思ったのです。
みなさまもおかげですっきりいたしました。
ありがとうございました。
No.6
- 回答日時:
EOF=0x1aというのはDOSのテキストファイルの話です。
一般にCのライブラリ関数でEOFが返ってくるのは、単純に『読み込むデータがなくなった』ときです。
いわゆるバイナリファイルも当然大きさは有限ですから、順繰りに読んでいけばいつかはファイルの終端に達し、読むべきデータがなくなります。そうすると、読み込み関数はEOF(もしくはNULL)を返すのです。
逆に、途中のデータを読んでいて、その先にまだデータが残っている限り、EOFとは認識されないわけです。
ちなみに、C言語の世界でEOFの実体は -1 です。もちろん実際のファイルに-1というデータが入っているわけではありません。
ありがとうございました。
char c = fgetc(...);
if(c == EOF){....
のように、
して不安定なエラーが出て、
ぎもんがしょうじたのです。
もちろん
int c = fgetc(...);
if(c == EOF){....
と修正したら
エラーは出なくなったのですが、
EOFとは何だろう?
と思ったのです。
みなさまもおかげですっきりいたしました。
ありがとうございました。
No.5
- 回答日時:
Windowsの場合、ファイルをテキストモードでオープンした場合、ファイル中の"0x1a"をEOFと扱います。
したがって、ファイルをオープンしたときのモードによってEOFの扱いが違ってきます。
なお、UNIXにはテキストモードはありません。
ありがとうございました。
char c = fgetc(...);
if(c == EOF){....
のように、
して不安定なエラーが出て、
ぎもんがしょうじたのです。
もちろん
int c = fgetc(...);
if(c == EOF){....
と修正したら
エラーは出なくなったのですが、
EOFとは何だろう?
と思ったのです。
みなさまもおかげですっきりいたしました。
ありがとうございました。

No.4
- 回答日時:
そもそもEOFとはデータではないのでは?
バイナリファイルと言っても1byteのデータは0~255の値なので、fgetc関数などを用いたときEOFと区別がつけられるのではないでしょうか?
No.3
- 回答日時:
ちなみに、最近はテキストファイルでもEOFが書き込まれてないことが多いです。
ファイルのサイズ情報を見れば、どこでファイルが終了するのか一目瞭然ですから、わざわざ入れる必要がないというわけです。
ありがとうございました。
char c = fgetc(...);
if(c == EOF){....
のように、
して不安定なエラーが出て、
ぎもんがしょうじたのです。
もちろん
int c = fgetc(...);
if(c == EOF){....
と修正したら
エラーは出なくなったのですが、
EOFとは何だろう?
と思ったのです。
みなさまもおかげですっきりいたしました。
ありがとうございました。
No.2
- 回答日時:
バイナリモードでファイルを読んでいる場合、EOFの検出はファイル内のデータとは関係ありません。
読み込みで、ファイルの最後に到達し、それ以上読み込むデータが無くなったときにEOFとなります。
ありがとうございました。
char c = fgetc(...);
if(c == EOF){....
のように、
して不安定なエラーが出て、
ぎもんがしょうじたのです。
もちろん
int c = fgetc(...);
if(c == EOF){....
と修正したら
エラーは出なくなったのですが、
EOFとは何だろう?
と思ったのです。
みなさまもおかげですっきりいたしました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessからのソケット通信について
-
EXCEL VBAで、バイナリデータの...
-
バイナリ表記を表示するコード...
-
【python】Excelファイルを読み...
-
バッファとは何ですか
-
24ビットのWaveデータの中身に...
-
HDDのバイナリイメージの取得方...
-
Microsoft VBAで2GBを超えるフ...
-
MacからWinにファイルを添付す...
-
OLE又はDDEを使うVISUAL BESIC...
-
C言語初心者の質問失礼します。
-
Access クエリ実行が急に非常に...
-
gccによって、BOM付きのUTF-8で...
-
ファイル名の先頭にアンダース...
-
以下のように複数のファイルを...
-
C# オリジナルのマウスポインタ
-
【ExcelVBA】UTF-8(BOM無)でC...
-
C言語の質問です。クイズをテ...
-
構造体のファイル出力
-
Excelマクロでの再読込み方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッファとは何ですか
-
Microsoft VBAで2GBを超えるフ...
-
エラー:ストリームの終わりを...
-
ページ読み込み時に自動的にsub...
-
入力ファイルをバイナリにする利点
-
EOF
-
VBA バイナリ―から文字列にす...
-
EXCEL VBAでテキストファイルの...
-
【python】Excelファイルを読み...
-
MacからWinにファイルを添付す...
-
関数の容量を知るには?
-
= (イコール)で始まるセルの値...
-
BMP画像の画像データ本体をテキ...
-
EXCEL VBAで、バイナリデータの...
-
VC++2010でmecabを使いたい
-
C言語とシリアル通信の送受信...
-
バイナリーデータの一部データ...
-
ファイルをダウンロードして展...
-
JavaScriptの実行速度が遅い
-
wave形式(*.wav)のフォーマット...
おすすめ情報