我正在使用 istream 和 read() 读取一些数据。我想知道我是否可以只测试 gcount() 的字节,或者我是否需要在调用 gcount() 之前测试一些 good()、eof() 等的组合。换句话说,即使由于 EOF 或其他一些内部问题导致读取失败, gcount() 是否总是在 read() 之后设置?
此外,如果这在标准或您可以引用的地方有所描述。我使用 cplusplus.com 作为参考,它说 gcount“返回对对象执行的最后一次未格式化输入操作提取的字符数。” 无论结果如何,我是否可以将诸如“最后一次操作”之类的语句解释为“最后一次操作”?
是
gcount()总是设置后read()即使读取失败因EOF或其他一些内部问题?
是的
gcount()的工作仅仅是返回从最后一次无格式输入操作中提取的字符数。该标准没有区分gcount()提取成功和失败的价值。显然,如果输入操作无法提取字符,则该值将为0.
因此,您只需将提取作为条件来测试提取是否成功即可。gcount()仅当您希望确定是否提取了一定数量的字符时才在条件中使用。
| 归档时间: |
|
| 查看次数: |
3393 次 |
| 最近记录: |