gpt4 book ai didi

c - C 中 yes/no 后按 Enter 键继续

转载 作者:行者123 更新时间:2023-11-30 14:27:35 24 4
gpt4 key购买 nike

这里的新程序员只有一些少量的 Java 经验,尝试用 C 编写一些东西。我想问某人一个是/否问题,根据他们的答案做一些事情,然后让他们按 Enter 继续。我有两个问题:

1.) 我无法让程序接受“y”、“Y”或"is"作为答案。我可以让它接受其中之一,但不能接受全部三个。 “逻辑或”运算符||不工作。2.) 如果没有两个“刷新”命令,我无法让它停止在“按 Enter 继续”:

while (getchar() != '\n');

我拥有并尝试使用的代码如下:

int main (int argc, const char * argv[]) {
printf("Would you like to continue? Please press y or n.\n");

if(getchar() == 'y'){
printf("You pressed yes! Continuing...");
}
else{
printf("Pressed no instead of yes.");
}
//flush commands go here
printf("\nPress ENTER to continue...");
if(getchar()=='\n'){
printf("\nGood work!");
}else{
printf("Didn't hit ENTER...");

return 0;
}

如有任何帮助,我们将不胜感激,谢谢。

最佳答案

假设你工作在*nix环境下,您可以创建一个缓冲区来依次存储传入的字符。您有两种情况:

1. Single character input
2. 3 character String

对于所有其他情况,您可以盲目地说输入不正常!
对于情况 1,i 应为 1character 应为 'y' 或 'Y'
对于情况 2,i 应为 3string 应为“Yes”
任何其他情况都是不正确的。代码如下:

#include<stdio.h>
int main()
{
char ch[3];
char c;
int i=0;
while(((c=getchar())!='\n')){
ch[i]=c;
i++;
}
ch[i]='\0';
if (i==1)
if (ch[0]=='Y'||ch[0]=='y')
printf("OK");
else
printf("Not OK");
else if(i==3)
if (strcmp(ch,"Yes")==0)
printf("OK");
else
printf("Not OK");
else
printf("NOT OK");
return 0;
}

我建议使用这样的东西。

关于c - C 中 yes/no 后按 Enter 键继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7734669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com