ページ 1 / 1
fgets関数について
Posted: 2007年7月12日(木) 21:47
by テオリア
「
http://www.dia-net.ne.jp/~xbox/question.html」
上記のURLにプログラムのソースを載せました。
実行し、文字列の個数を入力すると、なぜか最初のループで、文字列の入力ができません。
2回目以降は、入力ができます。
どうしてなのでしょうか?
よろしくお願いいたします。
Re:fgets関数について
Posted: 2007年7月12日(木) 22:16
by Hermit
scanf("%d", &n);
では、数値の後の改行までは取得されないため、
最初の入力時にその改行が入ってしまいます。
最初の改行を取り除く処理が必要です。
scanf("%d", &n);
fgets(str, 100, stdin);
くらいでいいんじゃないかな?もっとスマートなやり方あったかもしれないが(^^;
Re:fgets関数について
Posted: 2007年7月12日(木) 22:35
by テオリア
そういうことだったんですか!
ありがとうございます。
Re:fgets関数について
Posted: 2007年7月12日(木) 23:38
by tk-xleader
>くらいでいいんじゃないかな?もっとスマートなやり方あったかもしれないが(^^;
getchar()関数で空読みするという方法がいいと思います、getchar()の場合は、戻り値
に入力されたキー(正確には入力バッファに残っているもの)を返すだけですから、それ
を無視してしまえばいいと思います。
Re:fgets関数について
Posted: 2007年7月13日(金) 16:18
by テオリア
tkmakwins15さん、回答ありがとうございます。
実際やってみたところ、私が求めていたものでした。
本当にありがとうございました。