gpt4 book ai didi

C++ istream : Is gcount() always set after a read() even if it fails?

转载 作者:搜寻专家 更新时间:2023-10-31 01:05:46 24 4
gpt4 key购买 nike

我正在使用 istream 和 read() 读取一些数据。我想知道我是否可以只测试 gcount() 的字节数,或者我是否需要测试 good()eof() 等,然后再调用 gcount()。换句话说,即使由于 EOF 或其他内部问题导致读取失败,gcount() 是否始终设置在 read() 之后?

此外,如果这在标准中或您可以引用的地方进行了描述。我使用 cplusplus.com 作为引用,它说 gcount “返回对对象执行的最后一个未格式化输入操作提取的字符数。”无论结果如何,我能否将“最后一次操作”之类的语句解释为最后一次操作?

最佳答案

Is gcount() always set after a read() even if that read failed due to EOF or some other internal problem?

gcount() 的工作仅仅是返回从最后一次未格式化输入操作中提取的字符数。当提取成功和失败时,标准不区分 gcount() 的值。显然,如果输入操作无法提取字符,则该值将为 0

因此,您只需将其用作条件即可测试提取是否成功。仅当您希望确定是否提取了一定数量的字符时,才在条件中使用 gcount()

关于C++ istream : Is gcount() always set after a read() even if it fails?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22083335/

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