关于C++新建文件夹的问题(路径带有变量)

新人初学C++遇到一些问题,
我想在某个目录下新建一个文件夹,但是这个文件夹名称是一个string类型的变量.
我想把他用来当作文件夹名称,我试过system函数的mkdir,但是里面不能放入变量作为路径
用CreateDirectory这个函数的话,里面的路径无法填入string类型的路径,转换为cstring类型后,
新字符串和原字符串变掉了,请问改如何处理? 谢谢!

部分代码
void SaveQR()
{ QRreader(); //读取二维码
ifstream in(".\QRreader\QR1.txt", ios::in);
istreambuf_iterator beg(in), end;
string qrdata(beg, end);
in.close();

cout<<qrdata; //测试读取二维码
string str=".\\out\\"+qrdata+"\\";   //最后路径.\out\二维码数字\
//这里要写新建上述路径文件夹的语句

假设你要在E盘的cj2文件夹下建一个cj文件夹(md命令是WINDOWS下建文件夹的命令)
string str = "E:\cj2\cj";
str = "md " + str;
system(str.c_str());

变量不行,你必须要有值才能进行创建

一个是你的路径是否正确,另一个是你的目录是否可以直接创建多层目录,还是要一层层创建