我正在使用istream和read()
读取一些数据。我想知道我是只需要测试gcount()
的字节,还是需要在调用gcount()
之前测试good()
、eof()
等的组合。换句话说,即使由于EOF或其他内部问题导致读取失败,gcount()
总是在read()
之后设置吗?
此外,如果这是在标准或某处,你可以引用。我使用cplusplus.com作为引用,它说gcount
“返回上一次对对象执行的未格式化输入操作提取的字符数”。我是否可以把“最后一次手术”这样的说法解释为“最后一次手术”,不管结果如何?
发布于 2014-02-28 00:51:49
gcount()
是否总是设置在read()
之后,即使由于EOF
或其他内部问题而导致读取失败?
是
gcount()
的工作仅仅是返回从上次未格式化的输入操作中提取的字符数。标准不区分提取成功时和失败时gcount()
的值。很明显,如果输入操作不能提取字符,则该值将是0
。
因此,您只需要测试一个提取是否成功,只需使用它作为条件。只在条件下使用gcount()
,如果您希望确定是否提取了一定数量的字符。
https://stackoverflow.com/questions/22083335
复制相似问题