Я пытаюсь собрать операнд (+, -, *, /) из ввода. Когда я пытаюсь сделать это, вход * и/принимается, и код работает. Когда я вводим + или -, генерируется исключение по умолчанию.C Программирование: getchar() не принимает «+» или «-» для ввода, но принимает «*» и «/»?
Что происходит ?! Есть ли какая-то проблема с символами + или - в getchar? Могу ли я попытаться ссылаться на него по значению ascii?
Я принимаю это как поплавок, а затем получаю. Это может быть проблема?
float result = 0.0;
float userEntry = 0.0;
char getOperand;
void main(){
printf("Calculator is on\n");
printf("Initial value is 0.0, please issue an operation in the following format: ex. +5 -5 *5 or /5. Do not add more than one number to the total.\n");
scanf("%3f", &userEntry);
getOperand = getchar();
printf("%f", userEntry);
putchar(getOperand);
switch(getOperand){
case '+':
printf("addition\n");
break;
case '-':
printf("subtraction\n");
break;
case '/':
printf("division\n");
break;
case '*':
printf("multiplication\n");
break;
default:
printf("UnknownOperatorException is thrown.\n");
break;
}
}
'getOperand' должно быть' int', так как 'GetChar()' 'возвращает int'. Это также не 'void main()' но 'int main (void)' или 'int main (int argc, char * arg [])'. – pzaenger
'+ 5' и' -5' являются действительными числами. Возможно, вы захотите переосмыслить свой метод ввода. –
Код принимает операнд * после * значение, но это не то, как вы описываете проблему или что она предлагает в тексте подсказки. Вы уверены, что это код, о котором вы говорите? Этот код не будет работать ни с входом, как описано, но по другой причине. – Clifford