【发布时间】:2014-07-03 02:43:42
【问题描述】:
我写了以下代码:
#include<stdio.h>
int main() {
char o,r;
int x,y;
do {
printf("Enter operator: '+' or '-' or '*' or '/'\n");
scanf("%c",&o);
printf("Enter first number: ");
scanf("%d",&x);
printf("Enter second number: ");
scanf("%d",&y);
switch(o) {
case '+':
printf("Sum: %d",x+y);
break;
case '-':
printf("Subtract: %d",x-y);
break;
case '*':
printf("Multiply: %d",x*y);
break;
case '/':
printf("Division: %d",x/y);
break;
default:
printf("Wrong operator entered.");
}
printf("\nEnter y or Y to continue: ");
scanf("%c",&r); // r is not getting value?. why?
} while((r=='y')||(r=='Y'));
}
r 没有获得价值,因此它没有做它应该做的事情。
printf("\nEnter y or Y to continue: ");
scanf("%c",&r);
似乎是什么问题?我错过了什么吗?
如果我在 c++ 中使用 cin,,为什么这段代码可以正常工作,但在 c 中使用 scanf 时却失败了?
【问题讨论】:
-
对我来说(gcc 4.8.2),此代码在
C和C++中都“失败”。
标签: c