
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
1回目の scanf のとき、3 のキーを押しただけでは入力が行われず、
3 の後にリターンキーを教してはじめてキーボードから標準入力へ
入力が行われます。そのあと、文字 '3' が scanf("%d" で取り込まれ、
リターンキーに対する文字 '\n' は数字でないのでバッファに残ります。
次の scanf("%c" でこの '\n' が answer へ取り込まれるため、
"Continue? " への答えが "else:yes" だと解釈されるのです。
2回目の "Please input number " に n, リーターンキー と反応すると、
scanf("%d" は標準入力から 'n', '\n' という文字の列を受け取ろうとして
n が数字でないので %d 変換を中止します。このため
input の値は破壊されず、前のループのときの値 3 のままです。
次の scanf("%c" でバッファに残された 'n' が answer へ取り込まれるため、
"Continue? " への答えが "n:no" だと解釈されます。
このとき、'n', '\n' の '\n' はまだバッファにのこったままです。
No.1
- 回答日時:
画像だとボケてて見にくいですよ。
少なくともコードは質問文に貼り付けた方がいいでしょう。(インデントは無くなりますが)
大学の課題…ならこのカテゴリでいいんでしょうかねぇ?
scanf()での入力の場合、改行コードとかが入力バッファに残ったりします。
そのあたりではないですかね?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
除籍とは?
-
「年次」と「年時」に使い方に...
-
大学除籍について質問です。 現...
-
一日遅れで、学費未納のため大...
-
大学の除籍について
-
大学の試験を欠席すると不可で...
-
早慶上・MARCH・日東駒専...
-
大学一年生です 事故で3週間入...
-
大学のキャンパス内に部外者が...
-
卒業証書を紛失してしまいました
-
学費未納で大学を除籍になりそ...
-
大学生です。 夜の8時過ぎに先...
-
突然、後期授業料未納の連絡が
-
大学って一回卒業してもう一回...
-
大学の授業で出席だけして帰っ...
-
大学一年生です 通年の必修で死...
-
学費納入期限を過ぎてしまいま...
-
退学の旨を教授へメールで・・・
-
大学がありすぎるような
-
茨城大学とMARCHだと、茨城大の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「年次」と「年時」に使い方に...
-
大学の試験を欠席すると不可で...
-
大学の授業で出席だけして帰っ...
-
茨城大学とMARCHだと、茨城大の...
-
大学一年生です 事故で3週間入...
-
大学のキャンパス内に部外者が...
-
大学って熱出てテスト受けれな...
-
大学一年生です 通年の必修で死...
-
大学生です。 夜の8時過ぎに先...
-
大学行きたくないです。 片道2...
-
大学で文学や歴史学を学ぶこと...
-
大学って一回卒業してもう一回...
-
豊橋技術科学大学って高専生が...
-
学費納入期限を過ぎてしまいま...
-
大学での講義中に飲食ってして...
-
「学生のとき」、「大学のとき...
-
大学の教授の苦情はどこへ言う...
-
大学がありすぎるような
-
早慶上・MARCH・日東駒専...
-
一日遅れで、学費未納のため大...
おすすめ情報