在C编程中学习

时间:2017-12-22 16:11:27

标签: c

我需要有关使用getche的帮助。 问题是我想使用intint我要使用getche, 但是,例如,如果我这样做:

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

但问题是,即使我在选择1中选择3,程序也会认为我的意思是一些随机的注释,所以无论我放什么,它都会打印给你。

有人可以帮我制作getch int吗? (不使用getche不是我必须使用的选项。) 感谢

2 个答案:

答案 0 :(得分:1)

我可以问你为什么限于非标准(和不寻常)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本身的值,这将转换为不可见的符号。

答案 1 :(得分:0)

首先:您进行了分配而不是条件,将“choice = 3”更改为“choice == 3”

第二:检查ASCII值为'0'并减去它,所以:'3' - '0'= 3等等