gpt4 book ai didi

c - fgets 无限循环终止

转载 作者:行者123 更新时间:2023-11-30 14:36:10 28 4
gpt4 key购买 nike

我尝试在无限循环中使用 fgets,因为我需要用户的特定输入。我想连续打印一些东西,直到收到用户的任何输入。然而 fgets 似乎让程序等待输入。

我尝试过使用其他输入方法,例如 gets。

while(1){
char input[100];
fgets(input, sizeof(input),stdin);
printf("I want this statement to continuously print.");
}

该语句仅在我输入文本时打印。但是我希望它无论输入如何都连续打印语句。

最佳答案

C 标准库中的所有 I/O 都是阻塞 I/O。这意味着如果您读取或写入文件(或标准输入等),读取或写入函数将不会返回,直到读取或写入发生(或遇到错误)。

如果您希望在 I/O 操作进行时执行代码,您需要 (1) 使用多线程,或 (2) 使用低级非阻塞 I/O(例如,Posix read/写入带有 O_NONBLOCK 的文件)。对于标准输入,这还可能涉及一些终端设置的低级困惑。

关于c - fgets 无限循环终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58210709/

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