3

ユーザーt数から2文字入力しようとしています。これが私のコードです:

int main()
{
    int t;
    scanf("%d",&t);
    char a,b;

    for(i=0; i<t; i++)
    {
        printf("enter a: ");
        scanf("%c",&a);

        printf("enter b:");
        scanf("%c",&b);
    }
    return 0;
}

奇妙なことに、最初の出力は次のとおりです。

enter a: 
enter b:

つまり、コードは の値を待ちませんa

4

3 に答える 3

0

で使用される一部の形式でscanfは、改行が削除されますが、削除されstdinない形式もあります。使用して読むこと"%d"は、後者のカテゴリに分類されます。'\n'読み込む前に 改行を読む必要があります

scanf("%c", &a);
于 2014-06-07T18:01:22.097 に答える