コマンドラインからすべての入力を取得して、リンクされたリストに入れようとしています。コマンドラインからの数値は、この形式です 0-1 2-3 4-9 etcc 数値のペアを 2 つの変数に格納するために行ったことは次のとおりです。
scanf("%d-%d", &a, &b);
さて、この scanf ステートメントはループ内にあり、私の質問は次のとおりです。ループの状態は何ですか? すべての入力が完了するまで、scanf を実行し続けたいと思います。
前もって感謝します。
コマンドラインからすべての入力を取得して、リンクされたリストに入れようとしています。コマンドラインからの数値は、この形式です 0-1 2-3 4-9 etcc 数値のペアを 2 つの変数に格納するために行ったことは次のとおりです。
scanf("%d-%d", &a, &b);
さて、この scanf ステートメントはループ内にあり、私の質問は次のとおりです。ループの状態は何ですか? すべての入力が完了するまで、scanf を実行し続けたいと思います。
前もって感謝します。
悪名高いとは言わないまでも有名な の特徴はscanf
、文字列以外のデータ (たとえば ) を読み取るときに入力バッファにデータを残すことint
です。ここで確認してください:入力バッファにデータを残す.
これを試して:
do
{
int x = scanf("%d-%d", &a, &b);
}while ((x != EOF) && (getchar() != '\n'));
scanf
出力を EOFと比較する必要があります。そして最も重要なことは、入力バッファの'\n'
左をフラッシュする必要があることです。scanf