切换小程序不让我看到结果

时间:2012-03-25 08:13:00

标签: c switch-statement

我正在学习C的switch语句。这是我的小程序,它运行并进行计算,但不让我看到操作的结果。黑色窗口显示,以便输入数字和操作符,然后在几分之一秒内显示结果并消失。任何帮助表示赞赏。

#include <stdio.h>

int main(int argc, char *argv[])
{
int num1, num2, ans=0;
char ch, name;

printf("Enter a value: ");
scanf("%d", &num1);

printf("Enter a second value: ");
scanf("%d", &num2);

printf("Input * To multiply\
              + To add\
              - To subtract: ");
scanf(" %c", &ch);

switch(ch)
{
case'*':
    ans=num1 * num2;
    printf("%d times %i equals: %i",num1,num2,ans);
    break;

case'+':
    ans=num1+num2;
    printf("%i plus %i equals: %d",num1,num2,ans);
    break;

case'-':
    ans=num1-num2;
    printf("%d minus %d equals: %d",num1,num2,ans);
    break;

default:
    printf("Range numbers");
}

getchar();
return ch;
}

2 个答案:

答案 0 :(得分:2)

可能是由于输出缓冲。在格式化字符串中最后添加换行符(\ n)。

答案 1 :(得分:1)

作为新手,您应该使用转义换行printf结束所有\n格式字符串,即printf("%i plus %i equals %d\n", num1, num2, ans);(或者您应该在结束后立即致电fflush(stdout); getch之前和所有scanf之前的切换。