我有一个简单的问题。我有一个名为test()的方法。我的代码看起来像:
void test()
{
char c;
printf("Are you happy?\n");
printf("Hit y for yes or n for no \n");
scanf("%d", &c);
if(c == 'y')
{
printf("That's awesome!\n");
}
else
{
printf("That is too bad.\n");
}
}
当我运行代码时,不会读取输入。我认为我的问题在于“如果(c =='y')”“有谁能告诉我我做错了什么/如何修复它?谢谢!
p.s我有一个主要的方法等。
答案 0 :(得分:4)
这会扫描int
:
scanf("%d", &c);
这会扫描char
:
scanf("%c", &c);
答案 1 :(得分:0)
用于读取单个scanf
值的正确char
格式说明符为"%c"
。您正在使用"%d"
。格式说明符"%d"
旨在专门用于int
个收件人参数。您为什么要尝试将"%d"
与char
一起使用?
答案 2 :(得分:0)
您应该将其更改为scanf("%c", &c)
答案 3 :(得分:0)