0

当用户输入“退出”一词时,我试图打破循环。如果用户输入除了单词 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.

所以我的问题是:为什么会有这么多额外的“$”?我如何每次退货只能获得一个“$”?

4

1 回答 1

1

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

于 2012-11-29T04:07:36.710 回答