gpt4 book ai didi

c - 标准输入缓冲区是否为空 C

转载 作者:行者123 更新时间:2023-11-30 17:41:40 28 4
gpt4 key购买 nike

我想编写一个函数来告诉我标准输入缓冲区是否为空。所以,这是代码:

int buff_empty()
{
char buffer[3];
fgets(buffer, 3, stdin);
if(strlen(buffer) > 1) return 0;
return 1;
}

但问题是 - 我不希望 fgets() 等待我的输入。我正在使用自己的函数来读取,例如,一个整数,然后用这个函数检查缓冲区是否为空(放入了多个数字)。

函数运行良好,但是当我读取一个数字时(读取函数只读取空白,就像 scanf() 一样),它会再等待一个断线(输入?)。有什么办法可以解决吗?

提前致谢!

最佳答案

部分问题在于您要求程序读取您的想法。当它从输入中读取(或尝试读取)并且那里什么都没有时,它如何区分没有更多输入和输入尚未输入?

正常的解决方案是将输入放入单独的文件中,并查找文件结尾以告知何时不再有输入。因此,当程序尝试读取下一个数字时,它会到达文件末尾并知道没有更多输入。

尝试阅读 feof() 函数或 fgets() 可能的返回值。

关于c - 标准输入缓冲区是否为空 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21044061/

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