1

Cの多次元char配列に値を入力するためにこのコードを試しています.

コード:

char s[2][2];
    char TRUE = '1';

for (i =0; i < 2; i++)
{
    for (j = 0; j < 2; j++)
    {

        scanf("%c\n", &s[i][j]);
        printf("%c\n", (char)s[i][j]);
        printf("###\n");
        if (s[i][j] == TRUE)
            printf("Char are equal\n");
        else
            printf("Not\n");
    }
}

問題は、その最初の scanf() で Null 値を取得していることです。このコードは、2 番目の scanf() からのみ正常に機能します。

コードの目的は、'1' と '0' の値を入力し、入力が TRUE ('1') に等しいかどうかを比較することです。

4

1 に答える 1

0

デフォルトでは多くの問題がありscanf()ます。あなたはそれを呼び出す必要があります:

scanf("%c", &s[i][j]);
fflush(stdin);

またはfflush()、オペレーティングシステムで利用できない場合は、次のことが役立ちます。

do scanf("%c", &s[i][j]); while (getchar() != '\n');

お役に立てば幸いです:)

于 2012-05-04T09:55:34.343 に答える