【发布时间】:2014-02-14 21:23:18
【问题描述】:
所以我的程序必须从用户输入中读取 2 个整数并打印出来。我使用scanf,程序将在输入错误时退出。但是,当输入为“3+2”或“3-2”时,scanf 会忽略“+”和“-”符号,并将 3 和 2 作为两个整数输入读取。我想要 3+2 和 3-2 作为错误输入,程序将退出。我该如何解决?
int num1, num2;
if (scanf("%d%d", &num1, &num2) != 2) {
//bad input, exit the program
}
else {
//print the two integers
【问题讨论】:
-
从技术上讲,它是读取两个整数...
-
当你给这两个值时,将它们分开。例如 3 2
-
"-" 符号不会被忽略。 (也是“+”)
-
你想让它做什么?当我运行它并输入 3-2 它打印 3 然后 -2 这是两个整数。
-
那么要求是两个值之间有一个空格?有一个模因“对你接受的东西要慷慨;对你生产的东西要严格”(给予或接受)它说你应该尽量容忍次优的输入,但要小心产生正确形成的输出。你可能想考虑一下。