首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >getch()函数的帮助

getch()函数的帮助
EN

Stack Overflow用户
提问于 2010-12-02 19:20:07
回答 4查看 1.1K关注 0票数 4

我想使用getch函数来获取一个字符...因此用户只能输入Y或N字符。但是while循环不工作...我需要帮助!谢谢

代码语言:javascript
复制
#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();
}
EN

回答 4

Stack Overflow用户

发布于 2010-12-02 19:28:21

您的意思是&&而不是||。

变量"yn“是一个字符。为了使该表达式的计算结果为false,该字符必须同时为Y、y、N和N,这是不可能的。

您需要:

代码语言:javascript
复制
while(yn != 'y' && yn != 'Y' && yn != 'n' && yn != 'N')
票数 1
EN

Stack Overflow用户

发布于 2010-12-02 19:29:03

while语句中的逻辑有缺陷,您需要逻辑AND (&&)而不是逻辑OR (||)。

另外,这也是一个使用do { ... }while()的好地方;

票数 1
EN

Stack Overflow用户

发布于 2010-12-02 19:31:54

while循环的条件是嵌套OR。要使其正常工作,您可能需要将它们更改为AND:

代码语言:javascript
复制
do {
   yn = getch()
} while(yn != 'Y' && yn != 'y' && yn != 'N' && yn != 'n');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4334361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档