【发布时间】:2022-01-22 03:39:39
【问题描述】:
我正在使用 c,我是新手。
我想得到一个输入(1 或 2 或 3),我会给用户建议;
printf("please do it\n");
printf("1. \n");
printf("2. \n");
printf("3. \n");
char opt;
scanf("%c"&opt");
如果 opt 不是 1 或 2 或 3 则
printf("error\n");
printf("please re do it");
所有都在一个while(true)循环中,直到用户输入enter(new line charactor)退出;
怎么做?
我试图创建一个函数。
void get_order(char opt){
switch(opt){
case '1':break;
case '2':break;
case '3':break;
default:
printf("error\n");
printf("please re do it"):
char option;
scanf("%c",&option);
get_order(option);
}
}
但它不起作用。 谢谢。
【问题讨论】:
-
您声明这是在
while(true)循环中,但您的代码中没有这样的循环。您应该提供一个完整的示例(包括main和所有包含的文件)。见stackoverflow.com/help/minimal-reproducible-example -
这不是一个好方法,你的代码使用递归,当用户没有输入正确的输入时,它会越来越消耗内存。请改用循环。
-
如果您的编译器允许
scanf("%c"&opt");通过,请打开更多警告或更改为更好的编译器。 -
相关问题:Validate the type of input in a do-while loop C 在我对该问题的回答中,我提供了一个函数
get_int_from_user。该功能可能对您有用,因为它会不断提示用户输入,直到用户输入有效数字。但是,验证此号码是否介于1和3之间的部分必须由您添加。