首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C++ istream: gcount()是否总是在读取()之后设置,即使它失败了?

C++ istream: gcount()是否总是在读取()之后设置,即使它失败了?
EN

Stack Overflow用户
提问于 2014-02-27 23:54:47
回答 1查看 4.3K关注 0票数 4

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

此外,如果这是在标准或某处,你可以引用。我使用cplusplus.com作为引用,它说gcount“返回上一次对对象执行的未格式化输入操作提取的字符数”。我是否可以把“最后一次手术”这样的说法解释为“最后一次手术”,不管结果如何?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-28 00:51:49

gcount()是否总是设置在read()之后,即使由于EOF或其他内部问题而导致读取失败?

gcount()的工作仅仅是返回从上次未格式化的输入操作中提取的字符数。标准不区分提取成功时和失败时gcount()的值。很明显,如果输入操作不能提取字符,则该值将是0

因此,您只需要测试一个提取是否成功,只需使用它作为条件。只在条件下使用gcount(),如果您希望确定是否提取了一定数量的字符。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22083335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档