gpt4 book ai didi

c++ - 检查 istream::read 和 istream::seekg 失败的最佳方法

转载 作者:行者123 更新时间:2023-11-27 23:49:03 26 4
gpt4 key购买 nike

假设我有以下代码:

std::ifstream file(name, flags);
file.seekg(0, std::ios::beg);
// Check for error
file.read(buffer, size);
// Check for error

检查查找/读取错误的最简洁方法是什么?我应该只检查 ios::fail 和 ios::bad 位吗?这些失败会触发异常吗? (我相信你必须手动注册失败异常)

最佳答案

当这两个函数失败时,它们会在错误掩码中设置某些标志,您可以在 if 语句中检查这些标志。流的 bool 转换运算符将检查 failbitbadbit 的掩码,如果两者均未设置,则返回 true。默认情况下不会抛出异常,但您可以使用 exceptions() 方法设置异常。

if (!file.seekg(0, std::ios::beg)) {
// Check for error
}

if (!file.read(buffer, size)) {
// Check for error
}

关于c++ - 检查 istream::read 和 istream::seekg 失败的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48154877/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com