从输入中获取用户的选择

时间:2013-12-21 21:29:09

标签: c input

我有一项任务是使用两种方法从用户那里获取输入。

我想给用户chioce。如果他想要方法1,请按1.否则,按0。

之后用户开始输入我必须打印的字符串。我打印输入,直到用户按下输入按钮或EOF。

问题是,当用户给我“选择”时,他按下输入按钮('\ n'),这样我的程序就存在了。

我该如何解决这个问题?

printf("please enter your chioce: for malloc press 1. for linked list press 0\n");
    scanf("%d",&n);

    if (n)
    printWithMalloc();

    else{
.....

为了清楚,我的输入是

printf("please enter a string. the string will be printed right away.\n");
    while ((c=getchar())!=EOF && c!='\n')

1 个答案:

答案 0 :(得分:1)

忘记scanf()


如果我理解你的问题,你想在用户输入空行时退出。如果是这样,只需读取整行,并检查它是否为空(除了尾随换行符)字符):

while (1) {
    char buf[LINE_MAX];
    if (!fgets(buf, sizeof buf, stdin))
        break; // EOF

    if (buf[0] == '\n')
        break; // empty line

    // if we got here, the user entered something; try converting it to an int
    int choice = strtol(buf, NULL, 0);
    // and do stuff with it
}