前日質問にて以下のプログラムで、二度目のscanf()が無視されてしまう
旨質問したところ、1度目のscanfでの入力でエンターがバッファに残って
いるため、それを取り込んでしまうという回答いただきました。
改善方法として(*)のscanf関数で「%c」の前に空白を入れたところ
正常に動作し、改善されたのですが、なぜ改善されたのかご教示願えませんでしょうか?
よろしくお願いします
#include <stdio.h>
int main(void)
{
int g;
char ch;
do {
printf("何ガロンですか?: ");
scanf("%d", &g);
printf("%.2fリットルです\n", 3.7854 * g);
printf("また計算しますか?Y/N : ");
(*) scanf("%c", &ch);
} while(ch == 'Y' || ch == 'y');
return 0;
}
No.1ベストアンサー
- 回答日時:
★アドバイス
・次のリンクの一番下に空白文字の読み飛ばし方法が載っています。
http://www9.plala.or.jp/sgwr-t/c/sec05.html→『第5章 標準入出力関数(1)』
・以上
参考URL:http://www9.plala.or.jp/sgwr-t/c/sec05.html
ありがとうございます。
この類の誤作動は常識なんですね
気付かなかったのは本の読み方が悪いのか、選んだ本が悪いのか・・
はは・・
初歩的なところで躓くとストレスは非常に大きいですので
解決してすっきりしました。
本当にありがとうございます
No.3
- 回答日時:
・以上
★追記。
・次のサイトも読んでみて下さい。
http://wisdom.sakura.ne.jp/programming/c/c58.html→『scanf()関数』
基本的には scanf の仕様です。
scanf でも空白を含めて入力するには scanf 出利用可能な『正規表現』を使います。
・以上。
参考URL:http://wisdom.sakura.ne.jp/programming/c/c58.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
歩いた自慢大会
「めちゃくちゃ歩いたエピソード」を教えてください。 長時間でも長距離でも結構です。
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
fgetsなどのときのstdinのバッファを消すには?
C言語・C++・C#
-
Enterキーを押されたら次の処理に移るという事をしたい。
C言語・C++・C#
-
C言語 exitの使い方
C言語・C++・C#
-
-
4
fgetsでバッファ残留文字列を無視して読み込む
C言語・C++・C#
-
5
C言語 配列の長さの上限
C言語・C++・C#
-
6
数字以外が入力されたらエラー文を出したい。
C言語・C++・C#
-
7
fgets関数を使用したときの文字あふれについて
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラミング初心者です。 Py...
-
正負を反転させて出力するプロ...
-
VB.NETで16進数+16進数や16進...
-
scanf が無視されます
-
C言語・標準入力でquitを入力で...
-
C言語でのカレンダー作成
-
3つほどプログラムをおしえてく...
-
特定の文字が入力されるまで・・・
-
入力フォームのテキストボック...
-
C言語の非標準コンソール関数ge...
-
日付型のデータに変換するには!?
-
getcharをしながらwhile文で出...
-
至急教えてください!プログラ...
-
フローチャートについて
-
"gets"は危険なのでしょうか?
-
入力候補を表示させるには・・・?
-
*をユーザーが入力した数字の数...
-
c言語の数当てゲームプログラム...
-
C言語 ループの問題
-
数字以外が入力されたらエラー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正負を反転させて出力するプロ...
-
プログラミング初心者です。 Py...
-
数字以外が入力されたらエラー...
-
Eclipseコンソール表示を、リセ...
-
Excel VBAで、Application.Inpu...
-
*をユーザーが入力した数字の数...
-
java初心者です。入力されたの...
-
Linuxで入力待ちなしkeyread関...
-
batプログラム上で文字列を入力...
-
WindowsでEOF
-
Userformの入力順序をタブオー...
-
コマンドプロンプトからのEOFの...
-
EDITコントロールで入力できる...
-
VisualStudio2019のコードアナ...
-
電卓の小数点
-
Eclipseでコマンドラインを入力...
-
小数か整数かを判定する方法
-
cout関数を使っているのですが...
-
UWSCで変数をキー入力
-
ワードで文字を入力する時の変...
おすすめ情報