Scanf更改C中的输入

问题描述 投票:0回答:1

我有一个非常基本的问题,但我无法解决。

我正在尝试从这样的用户那里得到输入:

int main() {
    char coord[2];

    fflush(stdin);
    scanf("%c", coord);
}

[当我用printf("%c", coord);尝试此代码时,它显示的字符串与我输入的字符串完全不同。例如,如果我键入“ g6”,它将打印“Ê”。我真的不知道为什么会这样。

感谢您的帮助!

c scanf
1个回答
0
投票

如果要从用户那里获取字符串(字符数组),则应这样做:

scanf("%s",coord);

%c用于单个字符


0
投票

对于初学者,此声明

fflush(stdin);

具有未定义的行为,应将其删除。

[printf的转换说明符%c在传递char *类型的表达式(将数组指示符隐式转换为该表达式)时,需要一个char类型的参数

printf("%c", coord);

您必须写一个]

printf("%c", *coord);

printf("%c", coord[0]);

请注意使用此scanf调用

scanf("%c", coord);

您只能输入一个字符。您不能输入字符串。

© www.soinside.com 2019 - 2024. All rights reserved.