2017-02-15 22 views
-1

boost::filesystem::pathオブジェクト(ブーストv1.55)を作成するときに、私は、この問題に遭遇しました。私はどのように文字列変数からのパスを作成するか、または文字列の連結を理解できませんでしたか?文字列全体が上記の例3のように二重引用符の間に指定されている場合C++ - 変数の文字列からBOOSTファイルシステムのパス

//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"); 

私は唯一のパスオブジェクトを作成することができましたが、これは、変数入力を許可していません。

基本的に、どのように私は私の出発点として文字列を使用してfs::pathオブジェクトクラスを実装するのでしょうか?

ありがとうございました! /ファイルシステムのパスのドキュメントを後押しする

編集

Link。 C++を再学習するので、それのいくつかは、まだ私の頭の上に少しです...私は「....コンストラクタはここにどのように動作するかは非常に理解していない...本当に、この時点で依頼するのか分かりませんdは間違いなくすべてのポインタを感謝します。

+2

文字列とは何ですか? 'から構築することができますか?あなたはSTRING''の定義を持っている、あなたは私たちを教えてください。おそらくC-文字列または 'のstd :: STRING'それから、または何かを求める。 – GManNickG

+0

私は一種の再学習していますC++ ...私は正確に覚えていない/あなたが求めている方法で 'String'の '定義'を知ってください。ドキュメントへのリンクを含むように更新されました... – RisaAudr

+1

「文字列」が何であるかはわかりませんが、[MCVE](http://stackoverflow.com/help/mcve)を投稿してください。 – GManNickG

答えて

0

おかげでGManNickG - あなたは実際に私の問題を解決するために管理しました。 、C++ Builderの中で、それはAnsiStringの引数が動作するように望んでいる - 私はそれが私の答えに私を導いたこと、実際にShowMessage()methodだったなど、C++ Builderの10.1を使用して、しばらくStringで混乱することができた、それは値代入していますstd :: stringはコンパイルされません。 C++ Builder 10.1では、Stringがstd :: stringではなくAnsiStringであると定義されています。繰り返しますが、私はそうするときusing namespace std、私はあなたがStringとして文字列を定義する場所指向OBJの私の予備知識のほとんどは、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) 

うまくいけば、これは他の誰かが助けまた、linkとはどのようにしてsts :: Ansiに変換して誰かが役に立つと思った場合に変換します。

関連する問題