C - 重复提示直到有效的用户输入

时间:2016-02-12 09:31:03

标签: c loops

如何在用户输入-2,-1,0或正数之前重复此循环?

int main(int argc, char argv[]) {
    char n[3];
    char line[LINESIZE];
    fgets(line, sizeof(line), stdin);
    sscanf(line, "%s", n);
    do {
        if (n == 0) {
            printf("DISPLAYING ALL RECORDS.\n");
        append();
        } else if (n > 0) {
            printf("MODIFYING RECORD %s", n);
        } else if (n < 0) {
            printf("APPENDING RECORD %s", n);
        }  else if (n == -2) {
            printf("QUITTING.");
        } else {
            return 1;
        }
    } while (1);

return 0;
}

3 个答案:

答案 0 :(得分:0)

使用do / while循环:

do
{
   // code to be looped (ask the input value)
} while (n < -2)

// here you can check the values as in your code

答案 1 :(得分:0)

我不知道你想要用你的代码做什么,但是

while(n<(-2))
{
      // Your code
      // again take n as an input
}

应该完成你问题的必要任务。

答案 2 :(得分:0)

在循环运行时,您需要使用kbhit()getch()来获取输入。 kbhit函数在那一刻检查是否存在击键,getch函数用于检索该击键的数据,如果kbhit获得击键,则返回非零值。不是它返回0