タイトル通り、使おうかな
while(getchar() != '\n');
scanf を使用するたびに? そして、誰かが背後にあるロジックを説明できますか
while(getchar() != '\n');
ありがとう。
タイトル通り、使おうかな
while(getchar() != '\n');
scanf を使用するたびに? そして、誰かが背後にあるロジックを説明できますか
while(getchar() != '\n');
ありがとう。
いいえ、通常はその必要はありません。stdin投稿したループは、そうでない文字に遭遇するまで文字を読み取ります\n。あなたが書いた方法では、最後の非改行文字は改行と同じように失われます。
典型的な問題または「フラッシュ」の必要性は、次の方法で回避できます。
scanf他の入力方法と混在しない。たとえば、それを混ぜないでくださいfgetsたとえば、空白を無視するにはscanf("%c"...)、scanf(" %c"..).
それはさておき、読み込む入力が複雑な場合は、次のことをお勧めします。
で文字列全体を読み取り、それを で好きなようにfgets解析できます。矛盾しているように見えるかもしれません。ポイントは、 を使用して完全な文字列を安全に保存すると、それを分析したり、一致しない部分をスローしたり、あちこちで実行したりする自由が大幅に増えることです。sscanfstrtoksscanfscanffgetsstrchr
タスクをより単純な問題に減らすために、python や perl など、ジョブにより適した言語 (ライブラリ付き) を使用します。
本格的なレクサーを使用する