我有一个非常基本的问题,但我无法解决。
我正在尝试从这样的用户那里得到输入:
int main() {
char coord[2];
fflush(stdin);
scanf("%c", coord);
}
[当我用printf("%c", coord);
尝试此代码时,它显示的字符串与我输入的字符串完全不同。例如,如果我键入“ g6”,它将打印“Ê”。我真的不知道为什么会这样。
感谢您的帮助!
如果要从用户那里获取字符串(字符数组),则应这样做:
scanf("%s",coord);
%c用于单个字符
对于初学者,此声明
fflush(stdin);
具有未定义的行为,应将其删除。
[printf的转换说明符%c
在传递char *类型的表达式(将数组指示符隐式转换为该表达式)时,需要一个char类型的参数
printf("%c", coord);
您必须写一个]
printf("%c", *coord);
或
printf("%c", coord[0]);
请注意使用此scanf调用
scanf("%c", coord);
您只能输入一个字符。您不能输入字符串。