gpt4 book ai didi

c - 当用户输入超出使用 fgets 所需的范围时该怎么办?

转载 作者:行者123 更新时间:2023-11-30 16:43:16 25 4
gpt4 key购买 nike

我想知道当我将fgets中的缓冲区大小设置为n字节并且用户输入2n字节时如何处理这种情况? fgets 将读取前 n 个字节,其他 n 个字节将保留在 stdin 中,对吧?在每次 fgets 之后刷新 stdin 是个好主意吗?还有其他选项可以处理这种情况吗?

最佳答案

您知道输入何时因输入字符串末尾缺少 '\n' 换行符而被截断。

文本文件中的最后一行可能除外,它可能不包含任何换行符。

如果有更多输入,您可以realloc缓冲区(最初通过malloc获取)并使用适当的缓冲区指针(和大小)重复以附加到您想要的内容。已经有了。

无需刷新任何内容,只需将正确的指针和额外的缓冲区大小传递给fgets即可。

无论如何,使用 fflush() 刷新输入都没有明确定义。

关于c - 当用户输入超出使用 fgets 所需的范围时该怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45403681/

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