如何在C中使用scanf()表示多维char数组

时间:2012-05-04 09:38:57

标签: c multidimensional-array char scanf

我正在尝试使用此代码将值输入到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')。

1 个答案:

答案 0 :(得分:0)

默认情况下scanf()存在许多问题。你应该叫它:

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

或者如果您的操作系统上没有fflush()可以提供帮助:

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

希望有所帮助:)