作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 istream 和 read()
读取一些数据。我想知道我是否可以只测试 gcount()
的字节数,或者我是否需要测试 good()
、eof()
等,然后再调用 gcount()
。换句话说,即使由于 EOF 或其他内部问题导致读取失败,gcount()
是否始终设置在 read()
之后?
此外,如果这在标准中或您可以引用的地方进行了描述。我使用 cplusplus.com 作为引用,它说 gcount
“返回对对象执行的最后一个未格式化输入操作提取的字符数。”无论结果如何,我能否将“最后一次操作”之类的语句解释为最后一次操作?
最佳答案
Is
gcount()
always set after aread()
even if that read failed due toEOF
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/
我是一名优秀的程序员,十分优秀!