2014-10-07 96 views
1

std::stringstream中有哪些可能的错误?std :: stringstream中有什么可能的错误(设置failbit和badbit的方法)?

具体而言,std::stringstream派生自std::ios,这意味着它有一个std::ios::rdstate。在std::ios::rdstate中,当设置了failbitbadbit时,我们遇到问题。因此,和badbit设置为std::stringstream的可能方法是什么?

设置failbitbadbit是依赖于编译器/实现还是由标准指定的方法?

回答

3

表124在C++ 11指定什么的各个位平均:

badbit指示完整性损失在输入或输出序列(例如来自一个 不可恢复的读取错误文件);

eofbit表示输入操作到达输入序列的末尾;

failbit指示输入操作无法读取预期字符,或输出操作无​​法生成所需字符。

至于什么操作设置那些位,这是散落在各个地方的标准,你可以搜索面膜的出现,找出哪些设置和清除。

对于例如,一种方式badbit可以设置是,如果你使用一个operator>>电话给istream期间得到一个异常。详情请见27.7.2.2 Formatted input functions。整个标准中还有许多其他地方给出类似的描述。

相关问题