gpt4 book ai didi

c - While 循环在第二次迭代时跳过第一个 `fgets()`

转载 作者:太空宇宙 更新时间:2023-11-04 01:48:35 25 4
gpt4 key购买 nike

<分区>

我知道这样的问题一直被问到,我已经阅读了好几本,但是,我从来没有像其他所有代码一样在我的代码中使用 scanf(),所以我找不到可比较的问题。我不知道为什么在第二次、第三次、第四次等迭代中,while 循环跳过了我的第一个 fgets()

代码:

    int main()
{
char word[40];
char answer[2];
while(true) {
printf("Please enter word: ");
fgets(word, sizeof(word), stdin);
printf("Your word is: %s\n", word);
printf("Would you like to go again?");
fgets(answer, sizeof(answer), stdin);
printf("%d\n", strcmp(answer, "F"));
if (strcmp(answer, "F") == 0) {
printf("breaking");
break;
} else {
printf("continuing");
continue;
}
}
}

输出:

Please enter word: Hey
Your word is: Hey

Would you like to go again?Y
Please enter word: Your word is:

Would you like to go again?Y
Please enter word: Your word is:

Would you like to go again?Y

...等等

我认为这与清除输入缓冲区有关,我尝试了几种方法,但没有任何效果。第二天和C混在一起,所以我不太了解。 (Python 更容易,哈哈)

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com