我想使用getch函数来获取一个字符...因此用户只能输入Y或N字符。但是while循环不工作...我需要帮助!谢谢
#include <stdio.h>
main(){
char yn = 0;
printf("\n\t\t Save changes? Y or N [ ]\b\b");
yn = getch();
while (yn != 'Y' || yn != 'y' || yn != 'N' || yn != 'n') { //loop is not working
yn = getch();
}
if (yn=='Y' || yn=='y') printf("Yehey");
else printf("Exiting!");
getch();
}发布于 2010-12-02 19:28:21
您的意思是&&而不是||。
变量"yn“是一个字符。为了使该表达式的计算结果为false,该字符必须同时为Y、y、N和N,这是不可能的。
您需要:
while(yn != 'y' && yn != 'Y' && yn != 'n' && yn != 'N')发布于 2010-12-02 19:29:03
while语句中的逻辑有缺陷,您需要逻辑AND (&&)而不是逻辑OR (||)。
另外,这也是一个使用do { ... }while()的好地方;
发布于 2010-12-02 19:31:54
while循环的条件是嵌套OR。要使其正常工作,您可能需要将它们更改为AND:
do {
yn = getch()
} while(yn != 'Y' && yn != 'y' && yn != 'N' && yn != 'n');https://stackoverflow.com/questions/4334361
复制相似问题