如何为不正确的输入显示错误消息?

How to display an error message for incorrect input?

I am currently trying to make code for a calculator that will calculate the area of a circle, cube, or square, depending on which integer the user enters in the beginning, then prompt for the measurements, etc.
I want the user to choose between 1, 2, or 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. 如果他们输入的不是 123,我如何让它循环并再次询问相同的问题。
  3. 如果用户输入某行:99,我该如何做到这一点,程序就会关闭?

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

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

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

  1. 对于输入处理,您应该 google 示例。您的 scanf 语句应该以分号而不是冒号结尾。 C 中的语句以分号结尾。然后你需要一些控制流来查看他们输入的内容并根据它做一些不同的事情。 switch 语句可能有意义,就像这里一样,您需要处理的选项很少。

    /* 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) ;
    }
    

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