これには複数の方法があることは知っていますが、ユーザーに文字を入力させ、後で使用するためにその文字を特定の整数に変換させようとしています。後で何かを変更する必要がある場合に備えて、定数を使用し#define
て物事を単純化しています。userChoiceに対して取得している値は、0、1、または2ではなく、大きな数値であるため、何かが間違っています。
これらは、コードの関連部分です。
#define ROCK 0
#define PAPER 1
#define SCISSORS 2
void getData (int* userChoice)
{
char charvalue;
printf("\n\nEnter the R, P, S, or Q (for quit) ");
scanf("%c", &charvalue);
charvalue = toupper(charvalue);
if (charvalue == 'R')
*userChoice = ROCK;
else if (charvalue == 'P')
*userChoice = PAPER;
else if (charvalue == 'S')
*userChoice = SCISSORS;
else if (charvalue == 'Q')
exit (1);
else
printf("\nerror");
printf("%d", userChoice);
return;
}