C++ c++;-从变量字符串提升文件系统路径
我在创建C++ c++;-从变量字符串提升文件系统路径,c++,boost-filesystem,C++,Boost Filesystem,我在创建boost::filesystem::path对象(boostv1.55)时遇到了这个问题。我不知道如何从字符串变量或字符串串联创建路径 //Example 1 namespace fs = boost::filesystem; String dest = "C:/Users/username"; fs::path destination (dest); //Error here //Example 2 namespace fs = boost::filesystem; Strin
boost::filesystem::path
对象(boostv1.55)时遇到了这个问题。我不知道如何从字符串变量或字符串串联创建路径
//Example 1
namespace fs = boost::filesystem;
String dest = "C:/Users/username";
fs::path destination (dest); //Error here
//Example 2
namespace fs = boost::filesystem;
String user = "username";
fs::path destination ("C:/Users/" + user); //Error here as well.
//Example 3
namespace fs = boost::filesystem;
fs::path destination ("C:/Users/username");
我只能在双引号之间指定整个字符串(如上面的示例3)时创建path对象,但这不允许变量输入
基本上,如何使用字符串作为起点来实现fs::path
对象类
谢谢你的帮助
编辑
以增强文件系统/文件系统路径文档。重新学习C++,所以其中的一些还有些我的脑袋…我不太明白这里的构造器是如何工作的。。。现在真的不知道该问什么。。。。我非常感谢您的指点。谢谢GManNickG-您确实解决了我的问题。我使用C++ Builder 10.1,并能在代码中混淆<代码>字符串>代码>,分配它的值等。实际上,是“代码”>“显示消息”(/CODE),它引导我到答案——在C++ Builder中,它想要一个ANSIstring参数来工作,而STD::string不会编译。C++ Builder 10.1定义了<代码>字符串< /C> >为ANSILASH,而不是STD::String。同样,我对C++是新手,所以当<代码>使用命名空间STD< /Cord>我没有意识到差异(我以前的面向对象知识大部分来自java,在这里你定义一个字符串为代码>字符串< /C>
//Working Example in C++ Builder 10.1 Starter
namespace fs = boost::filesystem;
std::string un = "/username";
std::string dest = "C:/Users" + un; //concatenation test
fs::path destination (dest); //Works, no compiler error now
std::string pathStdString = destination.string(); //retrieve 'dest' as std:string from path
String pathAnsiString = pathStdString.c_str(); //Converts std::string to ansi
ShowMessage(pathAnsiString); //Output box showing the path (valid in C++ Builder)
希望这有助于其他人提出类似的问题。另外,关于如何将std::转换为Ansi,以防任何人发现它有用。那么,什么是
String
?如何将它转换为文档中所述的路径
可以从中构造的内容?你有String
的定义,你告诉我们。p从C或String:“代码> STD::String 从它或某物。我有点重新学习C++……我不完全记得/知道你所要求的“代码”>“字符串< /代码>的定义”。更新到链接到文档……除了你知道没有什么“代码>字符串< /代码>,请张贴A。显然没有人愿意。详细说明,所以让我: