首页 > 解决方案 > 为什么在我输入另一个输入之后我的代码不打印?

问题描述

我正在制作一个计算器,用户输入类似“sum 3 4”的内容,它会打印“7”。

我有一个无限循环,它会扫描三件事:一个字符串和两个整数。这一切都有效,除了当你点击输入时,终端只是换行,它会一直这样做,直到你输入其他内容。如果你运行它,你会明白我的意思。

for (;;) {
    scanf("%20s", stringBuffer);
    scanf("%d ", &num1);
    scanf("%d ", &num2);

    if (strcmp(stringBuffer, "add") == 0) {
        printf("%d + %d = %d", num1, num2, (num1 + num2));
    } 
    else if (strcmp(stringBuffer, "sub") == 0) {
        printf("%d - %d = %d", num1, num2, (num1 - num2));

    }
    else if (strcmp(stringBuffer, "mul") == 0) {
        printf("%d * %d = %d", num1, num2, (num1 * num2));

    }
    else if (strcmp(stringBuffer, "div") == 0) {
        printf("%d / %d = %d", num1, num2, (num1 / num2));

    }
    else if (strcmp(stringBuffer, "help") == 0) {
        printf("input: operation n1 n2\n");
        printf("output: operation(n1, n2)\n");
        printf("implemented operations: 'add', 'sub', 'mul', and 'div'\n");
    }
    else if (strcmp(stringBuffer, "quit") == 0) {
        return 0;
    } else {
        printf("Please try again.\n");
    }
}

任何对修复的帮助将不胜感激。

标签: cprintfscanf

解决方案


推荐阅读