掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.28259

while文にscanfとgetsを使う理由
投稿者---kana(2006/09/24 10:11:49)


前回レスくださった方ありがとうございました。
過去ログ837の問題を見ていて、わからないことがあったので質問させてください。
http://f4.aaa.livedoor.jp/~pointc/log837.html

記事番号No.10658
たかさん作成の住所録処理のプログラムの、中身を検索する関数のところです。
while (1) {
    puts("何で探しますか?\n1.住所 2.氏名 3.電話番号");
    scanf("%d", &i); gets(dummy);
    if (1 <= i && i <= 3) break;
  }

while文脱出の条件はiだけなので無くてもいいかと思ったのですが、
gets(dummy)が無いと探す中身の入力に進めませんでした。
ここでの「gets(dummy);」は何故必要なのでしょうか?


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:while文にscanfとgetsを使う理由 28260 επιστημη 2006/09/24 10:14:56


No.28260

Re:while文にscanfとgetsを使う理由
投稿者---επιστημη(2006/09/24 10:14:56)


>gets(dummy)が無いと探す中身の入力に進めませんでした。
>ここでの「gets(dummy);」は何故必要なのでしょうか?

読み残した"改行"を空読するためでしょうね。


この投稿にコメントする

削除パスワード

No.28261

Re:while文にscanfとgetsを使う理由
投稿者---kana(2006/09/24 15:29:27)


>読み残した"改行"を空読するためでしょうね。
なるほど、%dで読み込む場合改行は含まれないからこのような処理になるのですね。
疑問が解決しました、ありがとうございます。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧