【问题标题】:How to display an error message for incorrect input?如何显示错误输入的错误消息?
【发布时间】:2015-09-13 19:36:21
【问题描述】:
我目前正在尝试为计算器编写代码,该代码将计算circle、cube 或square 的面积,具体取决于用户在开始时输入的整数,然后提示输入测量值,等等。
我希望用户在 1、2 或 3 之间进行选择。
我当前的代码:
#include <stdio.h>
#include <math.h>
int main(void){
int shape;
printf("\nArea calculation\n(1) Square\n(2) Cube \n(3) Circle \nPlease make a selection");
scanf("%d", &shape);
else{
printf("\nIncorrect Choice");
}
return 0;
}
我的问题是:
- 如果他们没有输入该信息,我该如何弹出错误消息?
- 如果他们输入除
1、2、3 以外的其他内容,我如何让它循环并再次询问相同的问题。
- 如果用户输入某行:
99 然后程序关闭,我该如何做到这一点?
【问题讨论】:
标签:
c
input
message
multiple-choice
【解决方案1】:
在尝试执行此操作之前,您需要阅读并可能会做一些 c 教程。这些将帮助您开始学习如何 (1) 打印错误输出、(2) 处理输入和 (3) 管理程序控制,这是您似乎要问的三件事。有很多方法可以做到这一点。
- 对于错误打印,查找 stdout 和 stderr。学习时的一个常见策略可能是使用函数 fprintf 写入标准错误。
fprintf(stderr, "Error: incorrect value inputted. Please enter 1, 2, or 3.\n");
-
对于输入处理,你应该谷歌示例。您的 scanf 语句应以分号结尾,而不是冒号。 C 中的语句以分号结尾。然后你需要一些控制流来查看他们输入的内容并在此基础上做一些不同的事情。一个 switch 语句可能是有意义的,就像这里,你有少量的选项要处理。
/* 放入一个函数,以便我们可以从 main() 多次调用它。 */
int myFunction() {
scanf("%d", &shape);
开关(形状){
情况1:
/* 做东西 */
休息;
案例2:
/* 做东西 */
休息;
案例 99:
返回 99;
默认:
fprintf(stderr, "错误选择");
}
}
-
程序控制。最后,如果它们失败,您希望能够再次调用它。所以把它放在一个函数中,然后从 main 调用那个函数。
int main() {
/* 这个空的while循环将永远调用myFunction() */
/* 或直到它返回 99,因为有人退出。 */
而(我的功能()!= 99);
}
这有点不雅,但应该可以帮助您入门。同样,您真的非常想开始查看有关学习语言的教程。