C言語なら俺に聞け(入門篇) Part 20at TECH
C言語なら俺に聞け(入門篇) Part 20 - 暇つぶし2ch937:デフォルトの名無しさん
07/11/04 22:59:13
EOFについて。
MSのドキュメント調べたけど、記述が見つからなかったので仮説。
てゆーか、コマンドプロンプトの制御文字に関する仕様のドキュメントてどこさ?

行頭にある^Zはコマンドプロンプトが解釈してプログラムに「データ無し」を通知する。
行中にある^Zは文字「0x1A」をプログラムに通知する。
という理由で>>932な動きをするっぽい。
ここはコマンドプロンプトの仕様だと思うんだけど、文献ミツカンネ。

stdinをバイナリモードで開くと同じ挙動をするので、
テキストモードでのデータ中の0x1A(制御コードのEOF)の扱いの差のようだ。
バグというよりは仕様の範疇っぽいね。
0x1Aを含むファイルをテキストモードでオープンして読んでみれば
もうちょい分かりそうなんだけど、データ作るのめんどかったんで誰か頼む。

○ バイナリで開き直したサンプル
#include <stdio.h>
int main()
{
int c;
freopen("CON", "rb", stdin);
do{
printf("%d\n",c = getc(stdin));
}while(c != EOF);
return 0;
}



次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch