我需要有关使用getche
的帮助。问题是,我想使用int
和int
,我想使用getche
,但例如,如果我这样做:
int choice1 = 0;
choice1 = getche();
if(choice1 = 3)
{
printf("hello");
}
但问题是,即使我在选择1中选择3,程序也会认为我的意思是一些随机的注释,所以无论我放什么,它都会打印给我。
有人可以帮助我让我的getch
成为int
吗? (不使用getche
不是我必须使用的选项。)谢谢
我可以问为什么你只限于非标准(和不寻常)getche()
?为什么这是您项目的要求?你应该使用标准的C getc()
来获得你的角色。
#include <stdio.h>
int main(void) {
int choice1 = 0;
choice1 = getc(stdin);
if (choice1 == '3') { // note this line
printf("hello");
}
return 0;
}
您的程序每次打印“hello”的原因是因为您没有将您的choice1与字符“3”进行比较。单个等号=用于分配。您只使用单等于分配变量。要比较两个相等的值,可以使用两个等号==。
你的代码也会将getche()
的结果与实际值3进行比较,而不是你想要的,即ASCII字符'3'。请确保指定ASCII字符“3”而不是3本身的值,这将转换为不可见的符号。
第一:你做了一个赋值而不是条件,把“choice = 3”改为“choice == 3”
第二步:检查ASCII值为'0'并减去它,所以:'3' - '0'= 3等等