gpt4 book ai didi

c++ - 异常处理和打开文件?

转载 作者:IT老高 更新时间:2023-10-28 12:31:14 29 4
gpt4 key购买 nike

是否可以使用打开文件的异常来替代使用 .is_open()

例如:

ifstream input;

try{
input.open("somefile.txt");
}catch(someException){
//Catch exception here
}

如果是,someException是什么类型?

最佳答案

http://en.cppreference.com/w/cpp/io/basic_ios/exceptions

另请阅读此答案 11085151引用此 article

// ios::exceptions
#include <iostream>
#include <fstream>
using namespace std;

void do_something_with(char ch) {} // Process the character

int main () {
ifstream file;
file.exceptions ( ifstream::badbit ); // No need to check failbit
try {
file.open ("test.txt");
char ch;
while (file.get(ch)) do_something_with(ch);
// for line-oriented input use file.getline(s)
}
catch (const ifstream::failure& e) {
cout << "Exception opening/reading file";
}

file.close();

return 0;
}

Wandbox 上运行的示例代码

编辑:通过 const 引用捕获异常 2145147

编辑:从异常集中删除了故障位。添加 URL 以获得更好的答案。

关于c++ - 异常处理和打开文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9670396/

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