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 值。此代码仅在第二个 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 回答