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

时间:2015-09-13 19:36:22

标签: c input message multiple-choice

  

我目前正在尝试为计算器制作代码,用于计算circlecubesquare的面积,具体取决于用户在开头输入的整数,然后提示进行测量等。
我希望用户在123之间进行选择。

我目前的代码:

 #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. 如果他们输入123以外的其他内容,我如何让它循环并再次提出相同的问题。
  3. 如果用户输入一行:99,我该怎么做才能关闭程序?

1 个答案:

答案 0 :(得分:2)

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

  1. 对于错误打印,请查找stdout和stderr。学习时的常用策略可能是使用函数fprintf写入标准错误。
  2. fprintf(stderr, "Error: incorrect value inputted. Please enter 1, 2, or 3.\n");

    1. 对于输入处理,您应该使用google示例。您的scanf语句应以分号结束,而不是以冒号结尾。 C语句以分号结尾。然后你需要一些控制流来看看他们输入了什么,并根据它做了不同的事情。切换语句可能有意义,因为在这里,您只需要处理少量选项。

      /* put in a function so we can call it from main() multiple times. */
      int myFunction() {
       scanf("%d", &shape); 
       switch(shape) {
       case 1:
          /* do stuff */
          break;
       case 2:
          /* do stuff */
          break;
       case 99:
          return 99;
       default:
          fprintf(stderr, "Incorrect Choice");
       }
      }
    2. 程序控制。最后,如果失败,您希望能够再次调用它。所以把它放在一个函数中,然后从main调用该函数。

      int main() {
          /* this empty while loop will call myFunction() forever, */
          /* or until it returns a 99 because someone quit. */
          while(myFunction() != 99) ;
      }
      
    3. 这有点不雅,但应该让你开始。再一次,你真的,真的想开始学习有关学习语言的教程。