0

ユーザーが「exit」という単語を入力したときに、ループから抜け出そうとしています。ユーザーがexitという単語以外のものを入力した場合は、プログラムで1行をスキップして、単一の「$」を記述します。それは動作しますが、少しおかしい演技をしています。コードと出力は次のとおりです。

int main()
{
    char input[5];
    int x = 5;
    while(x){
        printf("\n$");
        fgets(input, sizeof input, stdin);
        x = strcmp(input, "exit");
    }
}

ここに出力があります(私の入力では: "a" return "asdfasdfasdf" return "exit" return):

$a

$asdfasdfasdf

$
$
$
$exit

Process returned 0 (0X0) execution time : 110.855s
Press ENTER to continue.

だから私の質問は:なぜそんなに多くの余分な「$」があるのですか?返品ごとに1つの「$」のみを取得するにはどうすればよいですか?

4

1 に答える 1

1

ループごとに 4 文字しか読み取っていないためです。

于 2012-11-29T04:07:36.710 に答える