有关 getch() 函数的帮助

发布于 2024-10-05 13:58:10 字数 422 浏览 3 评论 0原文

我想使用 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();
}

I want to use the getch function to get a character... So the user can enter only Y OR N Character.. but the while loop is not working... I need help! Thanks

#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();
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

迷迭香的记忆 2024-10-12 13:58:15
//use of getch() function
#include<iostream.h>
#include<conio.h>
//main function starts excuition
viod main()
{
clrscr();//to clear the screen
//veriable decleration
int a;//Any integer
int b;//Any integer
int c;//Any integer
cout<<"Enter the first number\n";//prompt
cin>>a;//read the integer
cout<<"Enter the second number\n";//prompt
cin>>b;//read integer
c = a + b;//the value of xum of "a" and "b" is assigned to "c"
cout<<"sum is\t"<<c;
getch();//to stay the screen
}
//use of getch() function
#include<iostream.h>
#include<conio.h>
//main function starts excuition
viod main()
{
clrscr();//to clear the screen
//veriable decleration
int a;//Any integer
int b;//Any integer
int c;//Any integer
cout<<"Enter the first number\n";//prompt
cin>>a;//read the integer
cout<<"Enter the second number\n";//prompt
cin>>b;//read integer
c = a + b;//the value of xum of "a" and "b" is assigned to "c"
cout<<"sum is\t"<<c;
getch();//to stay the screen
}
计㈡愣 2024-10-12 13:58:14

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

do {
   yn = getch()
} while(yn != 'Y' && yn != 'y' && yn != 'N' && yn != 'n');

The condition for the while loop is nested ORs. For it to work you might want to change them into ANDs:

do {
   yn = getch()
} while(yn != 'Y' && yn != 'y' && yn != 'N' && yn != 'n');
桃气十足 2024-10-12 13:58:13

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

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

The logic in the while statement is flawed, you need logical AND (&&) instead of logical OR (||).

Also, this would be a good place to use do { ... } while();

南薇 2024-10-12 13:58:12

你的意思是&&不是||。

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

您需要:

while(yn != 'y' && yn != 'Y' && yn != 'n' && yn != 'N')

You mean && not ||.

The variable "yn" is one character. For that expression to evaluate to false, that character would have to be Y, y, N, and n simultaneously, which is impossible.

You need:

while(yn != 'y' && yn != 'Y' && yn != 'n' && yn != 'N')
万劫不复 2024-10-12 13:58:11
yn != 'Y' || yn != 'y' || yn != 'N' || yn != 'n'

您需要使用 &&而不是 ||这里。假设您输入了“Y”。因此,第一个测试 yn != 'Y' 为假,但第二个测试 yn != 'y' 为真。所以条件为真,因为它们是 OR 运算。这就是为什么它再次进入循环。

yn != 'Y' || yn != 'y' || yn != 'N' || yn != 'n'

You need to use && instead of || here. Say you have entered 'Y'. So 1st test yn != 'Y' is false but 2nd test yn != 'y' is true. So the condition is true, as they are ORed. That's why it is entering the loop again.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文