No.1ベストアンサー
- 回答日時:
scanf 文の最後に“;”が無いのは書込みミスだとして…
この場合、d に得られる文字は常に改行(0x0a)のはずです。
この scanf を実行するためには、何かの数字の後に Enter を打つ必要があります。
でも、この改行文字は scanf では読み取られずに入力チャネルに残っています。
そのため、次の d = getchar(); では、必ずこの残った改行が読み込まれてしまうのです。
対策の一つとしては、ループを抜けた後、fflush(stdin); をまず実行してやれば良いと思います。
(VC++6.0 SP5 でサンプルコードを書いて、確認しました。)
この回答へのお礼
お礼日時:2002/02/08 14:24
早速の回答、ありがとうございます。
試してみたところ、正常に動きました!
まさか scanf が悪さをしているとは思ってもみなかったので…
Cの経験者の人たちが scanf は使えないと言われているのも
こんなところに原因があるんでしょうね。
回答ありがとうございました。
助かりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# char string[100]; int c, i=0; while( (c=getchar()) 2 2022/05/30 21:41
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- Ruby プログラミング 3 2023/06/09 14:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エスケープ文字の復帰(¥r)と...
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
JAVA System.out.println の ...
-
テキストファイルから改行コー...
-
エクセルVBA 文字列領域が不足...
-
COBOLの改行
-
Excel VBS、ADODB.Streamで改行
-
文字列とWriteFile関数について
-
C言語について。
-
改行コードについて
-
ファイルから読み取った改行文...
-
改行コードが半角スペースにな...
-
fgetsとsscanf
-
C++で空Enterの入力を判...
-
CSVファイルの文字項目に改行コ...
-
jsp 改行コードで改行させて表...
-
【VBA】エクセルで最後の不要な...
-
1行ごとに取得して、その改行...
-
fscanfについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
エスケープ文字の復帰(¥r)と...
-
COBOLの改行
-
改行について
-
最終行の改行について
-
C++で空Enterの入力を判...
-
【VBA】エクセルで最後の不要な...
-
jsp 改行コードで改行させて表...
-
C++でのCRLFについて
-
ファイルから読み取った改行文...
-
テキストファイルから改行コー...
-
ExcelVBAでメールを作成してメ...
-
awkで改行を除いて文字列を抜き...
-
エクセルVBA 文字列領域が不足...
-
VBAでCSVをExcelに取り込む時に...
-
コンボボックスの項目中に改行を
-
JavaDoc コメントの改行について
-
Excel VBAからBeckyを起動して...
-
改行を読み飛ばす
おすすめ情報