我通过执行以下操作设置ifstream的异常掩码failbit
:
#include <iostream>
#include <fstream>
int main()
{
try {
std::ifstream in("in.txt");
in.exceptions(std::ifstream::failbit);
} catch (std::ios_base::failure &fail) {
// handle exception here
}
}
有什么办法可以清除或恢复异常掩码吗?
答案 0 :(得分:2)
找到解决方案:
std::ifstream::iostate old_state = in.exceptions ();
将保存旧的异常掩码。