停止C程序匹配用户输入

时间:2012-11-29 04:04:46

标签: c fgets

当用户输入单词“exit”时,我试图突破循环。如果用户输入除了单词exit之外的任何内容,我希望程序跳过一行并写一个单词“$”。它有效,但表现得有点滑稽。这是代码和输出:

int main()
{
    char input[5];
    int x = 5;
    while(x){
        printf("\n$");
        fgets(input, sizeof input, stdin);
        x = strcmp(input, "exit");
    }
}

继承输出(在我的输入中:“a”返回“asdfasdfasdf”返回“退出”返回):

$a

$asdfasdfasdf

$
$
$
$exit

Process returned 0 (0X0) execution time : 110.855s
Press ENTER to continue.

所以我的问题是:为什么会有这么多额外的“$”?我如何只返回一个“$”?

1 个答案:

答案 0 :(得分:1)

因为每个循环只能读4个字符。