我需要有关使用getche的帮助。
问题是我要使用int,并且要在该int上使用getche
但例如,如果我这样做:

int choice1 = 0;
choice1 = getche();
if(choice1 = 3)
{
    printf("hello");
}


但是问题是,即使我在choice1中选择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本身的值,这将转换为不可见的符号。

关于c - C语言编程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47944379/

10-11 11:42