文件读取失败,ios_base::failbit 我有一个简单的C++文件读取程序: int main() { std::string buf; std::ifstream file; file.exceptions(std::if
文件读取失败,ios_base::failbit文件读取失败,ios_base::failbit 我有一个简单的C++文件读取程序: int main() { std::string buf; std::ifstream file; file.exceptions(std::if,c++,file,exception,ifstream,eof,C++,File,Exception,Ifstream,Eof,文件读取失败,ios_base::failbit 我有一个简单的C++文件读取程序: int main() { std::string buf; std::ifstream file; file.exceptions(std::ifstream::failbit | std::ifstream::badbit); try { file.open("C:\\Test11.txt"); char c; while (!(
我有一个简单的C++文件读取程序:
int main() {
std::string buf;
std::ifstream file;
file.exceptions(std::ifstream::failbit | std::ifstream::badbit);
try {
file.open("C:\\Test11.txt");
char c;
while (!(file.eof())) {
file.get(c);
std::cout << c;
}
}
catch (std::ifstream::failure e) {
std::cout << e.what() << std::endl;
std::cout << e.code() << std::endl;
std::cout << "Exception opening/reading file";
}
file.close();
return 0;
}
intmain(){
std::字符串buf;
std::ifstream文件;
异常(std::ifstream::failbit | std::ifstream::badbit);
试一试{
打开(“C:\\Test11.txt”);
字符c;
而(!(file.eof())){
file.get(c);
std::cout@Biffen:谢谢!我现在理解了这个问题,但我找不到解决办法。因为在只阅读之后,我们会遇到EOF,并且在同一个地方发生异常。我遗漏了什么吗?你想要什么样的确切行为?@UlrichEckhardt:1)我们想要读取文件并在控制台上显示它。2)如果出现任何错误,例如a)文件不存在b)由于磁盘问题导致读取问题我们希望捕获异常并显示“异常打开/读取文件”您可以在布尔表达式中使用该文件来检查它是否已成功打开。您可以将streambuffer的地址流到另一个流中,以便在两个流之间复制数据。您最终可以检查流是否达到EOF,以区分成功与失败。@Biffen:谢谢!我现在理解这个问题,但我找不到解决方法ut.由于只读取之后,我们将遇到EOF,并且在同一个位置发生异常。我是否遗漏了什么?您想要什么具体行为?@UlrichEckhardt:1)我们希望读取文件并在控制台上显示它。2)如果出现任何错误,即。a)文件不存在b)由于我们希望捕获的磁盘问题导致的读取问题异常并显示“异常打开/读取文件”您可以使用布尔表达式中的文件来检查它是否已成功打开。您可以将streambuffer的地址流到另一个流中,以便在两个流之间复制数据。您可以最终检查流是否达到EOF,以区分成功与失败。