ユーザーが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'の使用法の* none *は正しいので、それを使用する前にそれについて学ぶことをお勧めします。 – WhozCraig
チップのおかげで、私はscanfについてもっと研究します。 – aparms