gpt4 book ai didi

c++ - 即使有完整路径也无法使用 C++ fstream 打开文件

转载 作者:太空宇宙 更新时间:2023-11-04 13:55:53 27 4
gpt4 key购买 nike

    string mapFile;

cout << "Enter the file name : ";
cin >> mapFile;

ifstream mapfh;
mapfh.open(mapFile.c_str());
if(mapfh.is_open()) { ... }
else //if board file did not open properly
{
throw;
}
mapfh.close();

我在命令行中使用 g++ 进行编译。每当我输入文件时(即使有完整路径,即/User/...etc./file.txt),它都会抛出错误。我知道输入很好,但无论出于何种原因,打开总是失败。

最佳答案

这不是完全可移植的,但如果您解释 errno,您将获得更明智的输出,

#include <cerrno>
#include <cstring>

...
if(mapfh.is_open()) { ... }
else //if board file did not open properly
{
std::cout << "error: " << strerror(errno) << std::endl;
throw;
}

如果您的政策是将错误作为异常进行传达,那么 use iostreams native support for the exceptions :

ifstream mapfh;
mapfh.exceptions(std::ios::failbit);
try {
mapfh.open(mapFile.c_str());
...
mapfh.close();
} catch (const std::exception& e) {
std::cout << e.what() << " : " << std::strerror(errno) << std::endl;
}

关于c++ - 即使有完整路径也无法使用 C++ fstream 打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21499325/

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