スレを勃てるまでもないC/C++の質問はここで 2
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
150:デフォルトの名無しさん 07/06/06 05:04:57 だから標準入力はフラッシュしちゃダメだってば。 151:デフォルトの名無しさん 07/06/06 05:20:19 >>148 なるほど!良く解ってスッキリしました。 ありがとうございます。 152:デフォルトの名無しさん 07/06/06 06:10:46 >>150 そうか、じゃあこういうの用意して void flush(FILE* in) { if (in->_cnt == 0) return; in->_ptr = in->_base; *(in->_base) = '\0'; in->_cnt = 0; } 入力ストリームを使う関数の前でflush(stdin);ってのはどう? これでも環境依存でやばいかな? 153:デフォルトの名無しさん 07/06/06 06:54:35 >>147 思い通りの動きにならない場合は、 デバッガ上でステップ実行して、 何が起きているのか確認するのがいい。 VCのIDEに統合されたデバッガなら、 inputの中身を確認するのも簡単だしさ。 ただし、覚えておいてほしいことがある。 問題の原因を理解せずに、思い通りの動きになるまで、コードを弄り倒す というのは、やってはいけない。 コード的には間違っているのに、偶然で思い通りの動きになってしまっている というので良しとしてはいけないから。 たとえば、今回の場合、 あえて酷い例を挙げると、 do { char dummy ; printf( "input A\n" ); scanf( "%c", &input ); scanf( "%c", &dummy ); }while( input != 'A' ); としても、一見、思い通りに動いているように見える。 でも、これは間違っている。
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
4310日前に更新/282 KB
担当:undef