c+中的绝对文件路径+;Linux下 我一直试图访问一个给定的文件,它总是在同一个位置,下面的C++代码: if (pcl::io::loadPCDFile<pcl::PointXYZ> ("~/Downloads/table_scene_lms400.pcd", *cloud) == -1) //* load the file if(pcl::io::loadPCDFile(“~/Downloads/table\u scene\u lms400.pcd”,*cloud)==-1)//*加载文件 由于显然“~”不是C++下的工作,互联网上的各种帖子建议使用/家庭/下载/…相反然而,我似乎没有让它发挥作用。我一直收到一个错误,说上面路径下的给定文件找不到 < C++中正确访问文件路径的正确方法是什么?< /P>
非常感谢,很抱歉这个问题太简单了 tildec+中的绝对文件路径+;Linux下 我一直试图访问一个给定的文件,它总是在同一个位置,下面的C++代码: if (pcl::io::loadPCDFile<pcl::PointXYZ> ("~/Downloads/table_scene_lms400.pcd", *cloud) == -1) //* load the file if(pcl::io::loadPCDFile(“~/Downloads/table\u scene\u lms400.pcd”,*cloud)==-1)//*加载文件 由于显然“~”不是C++下的工作,互联网上的各种帖子建议使用/家庭/下载/…相反然而,我似乎没有让它发挥作用。我一直收到一个错误,说上面路径下的给定文件找不到 < C++中正确访问文件路径的正确方法是什么?< /P>,c++,linux,C++,Linux,非常感谢,很抱歉这个问题太简单了 tilde~由shell扩展,它不是路径的通用部分 我建议您使用环境变量HOME获取当前用户主目录的路径,然后附加路径的其余部分。bash和zsh等shell将~扩展到主目录。您使用的函数不可用。你必须以其他方式扩展它。您可以cd~然后pwd找出shell认为您的主目录在哪里,并使用它。或者,您可以启动一个shell并请求它提供主目录,或者尝试一个环境变量,或者使用一些库,例如Qt:。C++运行时不展开文件路径。我所做的是这样的: #include <cs
~
由shell扩展,它不是路径的通用部分
我建议您使用环境变量
HOME
获取当前用户主目录的路径,然后附加路径的其余部分。bash和zsh等shell将~
扩展到主目录。您使用的函数不可用。你必须以其他方式扩展它。您可以cd~
然后pwd
找出shell认为您的主目录在哪里,并使用它。或者,您可以启动一个shell并请求它提供主目录,或者尝试一个环境变量,或者使用一些库,例如Qt:。C++
运行时不展开文件路径。我所做的是这样的:
#include <cstdlib>
std::string const HOME = std::getenv("HOME") ? std::getenv("HOME") : ".";
std::ifstream myfile(HOME + "/path/in/home/folder.txt");
#包括
std::string const HOME=std::getenv(“HOME”)?std::getenv(“主页”):“;
std::ifstream myfile(HOME+“/path/in/HOME/folder.txt”);
应该是/home/budekatude/Downloads/…
或任何你的用户名和主目录。@nwp:这就成功了!请将其作为答案发布,我会将其标记为解决方案!非常感谢!