gpt4 book ai didi

c++ - 在工作目录之外的 C++ 中打开文件

转载 作者:行者123 更新时间:2023-11-30 03:02:32 25 4
gpt4 key购买 nike

我有一个程序将有几个资源文件,用户可以将这些资源文件放在计算机上的某个位置,而不是与可执行文件位于同一文件夹中。如何打开这些文件?

我发现很多答案都说无法正常工作的原因是文件不在工作目录中。我试过提供完全限定的路径:

ifstream str;
str.open("/home/millere/foo.txt")

但是没有成功。我知道路径是正确的(复制并粘贴)。我找不到关于它的任何文档,但我认为它必须是可能的。 (例如,vim ~/foo.txt 来自 ~ 之外的任何地方都可以工作)。

最佳答案

假设您打算使用 ifstream 而不是 iostream,那么您的代码是正确的。 ifstream 可以使用文件路径以及工作目录中的文件名。

如果文件不存在,则不会抛出异常,但会设置失败位。在尝试对流执行任何操作之前,您应该检查这一点。

std::ifstream input("/home/bob/stuff.txt");

if (!input) std::cerr << "Could not open the file!" << std::endl;

else
{
// ...
}

如果您仍然无法从文件中提取数据,则问题出在您的代码中的其他地方。

关于c++ - 在工作目录之外的 C++ 中打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10093891/

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