c++ - 使用 "ifstream"、 "stringstream"和 "rdbuf()"将文件内容读取为字符串时如何检查 I/O 错误?

标签 c++ error-handling io

我正在使用以下方法将文件内容读入字符串:

std::ifstream t("file.txt");
std::stringstream buffer;
buffer << t.rdbuf();
std::string data(buffer.str());

但是如何检查 I/O 错误并确保所有内容都已实际读取?

最佳答案

您可以像处理任何其他插入操作一样执行此操作:

if (buffer << t.rdbuf())
{
    // succeeded
}

如果从 t.rdbuf() 中提取或插入到 buffer 失败,failbit 将在 buffer 上设置

关于c++ - 使用 "ifstream"、 "stringstream"和 "rdbuf()"将文件内容读取为字符串时如何检查 I/O 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7946317/

相关文章:

r - 避免让设备继续使用

javascript - 使用UpdatePanel时如何获取真正的异常消息?

linux - 使用 select() 进行 I/O 多路复用

Android ContentProvider 和 Google IO Rest Talk

c++ - malloc 多个小时间或几个大时间更快?

c++ - std::istream_iterator<double> 成员变量在递增时失败

asp.net - asp.net中的用户控件错误

java - PipedInputStream 和 PipedOutputStream 的用例

c++ - ffmpeg:avcodec_open2 返回无效参数

c++ - 在 C++ 控制台应用程序中使用 UWP 库