如何显示输入错误的错误信息?

问题描述 投票:0回答:1

我目前正在尝试为计算器编写代码,该计算器将计算

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. 如果他们输入
    1
    2
    3
    以外的内容,我如何使其循环并再次询问相同的问题。
  3. 如果用户输入某行:
    99
    然后程序关闭,我该如何做到这一点?
c input message multiple-choice
1个回答
2
投票

在尝试执行此操作之前,您需要阅读并可能执行一些 C 教程。这些将使您开始学习如何(1)打印错误输出,(2)处理输入,以及(3)管理程序控制,这是您似乎要问的三件事。有很多方法可以做到这一点。

  1. 对于错误打印,请查找 stdout 和 stderr。学习时的常见策略可能是使用函数 fprintf 写入标准错误。

fprintf(stderr, "Error: incorrect value inputted.  Please enter 1, 2, or 3.\n");

  1. 对于输入处理,您应该谷歌示例。你的 scanf 语句应该以分号结束,而不是冒号。 C 中的语句以分号结尾。然后,您需要一些控制流来查看他们输入的内容,并据此执行不同的操作。当您有少量选项需要处理时, switch 语句可能是有意义的。

    /* 放入一个函数,以便我们可以从 main() 多次调用它。 */
    int myFunction() {
     scanf("%d",&shape);
     开关(形状){
     情况1:
        /* 做东西 */
        休息;
     案例2:
        /* 做东西 */
        休息;
     案例99:
        返回99;
     默认:
        fprintf(stderr, "错误的选择");
     }
    }
  2. 程序控制。最后,您希望在失败时能够再次调用它。因此,将其放入一个函数中,然后从 main 中调用该函数。

    int main() {
        /* 这个空的 while 循环将永远调用 myFunction(),*/
        /* 或者直到因为有人退出而返回 99。 */
        while(myFunction() != 99) ;
    }
    

这有点不优雅,但应该可以帮助您入门。再说一遍,您真的非常想开始查看学习该语言的教程。

© www.soinside.com 2019 - 2024. All rights reserved.