我正在尝试检查用户是否输入y或其他内容。如何检查用户输入是否为特定字符
我已经尝试创建一个字符串,并循环通过用户输入,但是这并不起作用。
char answer[] = "n";
for(int i = 0; i < sizeof(answer)/4; i++) {
if(answer[i] == "y") {
calculatorPrompt();
} else if(answer[i] === "n") {
printf("Okay, bye!");
System(100);
}
}
这是我的代码(我敢肯定,它崩溃的if语句):
printf("Thanks for that\nDo you want a calculator?(y/n)");
char answer = 'n';
scanf("%s", answer);
if(answer == 'y') {
calculatorPrompt();
} else if(answer == 'n') {
printf("Okay bye!");
Sleep(100); //wait for 100 milliseconds
}
calculatorPrompt()
功能:
void calculatorPrompt() {
int a = 0;
int b = 0;
int sum = 0;
printf("Enter your first number: ");
if(scanf("%d\n", a) != 1) {
checkNumber();
} else {
printf("Enter your second number: ");
if(scanf("%d\n", b) != 1) {
checkNumber();
} else {
sum = calculate(a, b);
printf("Your answer is: %d", sum);
}
}
}
calculate()
功能:
int calculate(int a, int b) {
return a + b;
}
checkNumber()
功能:
void checkNumber() {
printf("Really? You didn't enter a number... Now exiting..");
return;
}
我已经包括<windows.h> <stdio.h>
和<stdbool.h>
我也困惑,为什么它崩溃。
程序的返回值是-1,073,741,819。
请提供更多详细信息。它崩溃并不是一个很好的描述。 –
首先,崩溃是因为您没有研究[**'scanf()**](http://en.cppreference.com/w/c/io/fscanf)是如何工作的。提示:'scanf(“%s”,answer)',其中'answer'只是'char',不正确。实际上,在发布的代码中'scanf'的用法都是正确的,所以我建议在使用它之前了解一下它。 – WhozCraig
感谢您的提示,我会进一步研究scanf。 – aparms