1

コマンドラインからすべての入力を取得して、リンクされたリストに入れようとしています。コマンドラインからの数値は、この形式です 0-1 2-3 4-9 etcc 数値のペアを 2 つの変数に格納するために行ったことは次のとおりです。

scanf("%d-%d", &a, &b);

さて、この scanf ステートメントはループ内にあり、私の質問は次のとおりです。ループの状態は何ですか? すべての入力が完了するまで、scanf を実行し続けたいと思います。

前もって感謝します。

4

1 に答える 1

3

悪名高いとは言わないまでも有名な の特徴はscanf、文字列以外のデータ (たとえば ) を読み取るときに入力バッファにデータを残すことintです。ここで確認してください:入力バッファにデータを残す.

これを試して:

do
{
  int x = scanf("%d-%d", &a, &b);
}while ((x != EOF) && (getchar() != '\n'));

scanf出力を EOFと比較する必要があります。そして最も重要なことは、入力バッファの'\n'左をフラッシュする必要があることです。scanf

于 2012-04-17T10:10:07.870 に答える