我写了一个非常简单的代码,以确保它在我将其实施到我的一个更大的项目中之前正常工作。 用户会看到三个选项的列表,用户应该选择一个,在此代码中显示他/她的选项。程序忽略了其他语句
#include <stdio.h>
#include <conio.h>
int main()
{
char c;
int allowed;
printf("Pick any:\n 1. one \n 2.two \n 3.three \n");
c = getch();
do{
//getch();
if (c = '1'){
printf("ONE");
allowed = 1;
} else if (c = '2'){
printf("TWO");
allowed = 1;
} else if (c = '3'){
printf("THREEEEEE");
allowed = 1;
}else{
printf("Choice was invalid, do it again:");
allowed = 0;
}
}while (allowed = 0);
return 0;
}
然而,出来放总是会打印:一,不管我按下键盘上与调试器显示,它得到首批获准= 1,则跳到do while循环结束。
有人能告诉我为什么吗?
为了避免overlokking你正在做我倾向于把固定在comparsion操作左侧的错误;那就是('1 = c')在你的情况下。尝试一下! ;-) – alk