在“if”检查失败后询问用户输入的更好方法是什么?

时间:2017-10-28 20:33:20

标签: c

我目前是C编程的初学者,我对使用“goto”来检查用户的字符串是否被接受有疑问,但我听到很多人说“goto”编程不好。

目前我在“if”检查后使用“goto”返回“获取”命令,以便用户再次输入。

    printf("Full Name: ");
NAME:
    gets(name);
    if (strlen(name) == 0)
    {
        printf("Empty name. Try again: ");
        goto NAME;
    }

除了使用“goto”之外,还有更好的方法吗?或者在这种情况下使用它并不是很糟糕?

2 个答案:

答案 0 :(得分:0)

尝试:

while (strlen(name) == 0) gets(name);

答案 1 :(得分:0)

这是您可以遵循的方案:

do
   read input
while input not valid

use input

如果您想显示错误消息,可以改为:

read input

while input not valid
   print msg input not valid
   read input

use input

或者这个:

while true
   read input
   if input valid
      break
   print input not valid

use input