gab*_*lin 6 c++ io error-handling
我正在使用以下方法将文件的内容读入字符串:
std::ifstream t("file.txt");
std::stringstream buffer;
buffer << t.rdbuf();
std::string data(buffer.str());
Run Code Online (Sandbox Code Playgroud)
但是,如何检查I/O错误并确保实际读取了所有内容?
您可以像使用任何其他插入操作一样执行此操作:
if (buffer << t.rdbuf())
{
// succeeded
}
Run Code Online (Sandbox Code Playgroud)
如果从中提取t.rdbuf()或插入buffer失败,failbit将被设置为开启buffer.