我的代码正在运行,但我认为这样做很糟糕。 (使用system()存在安全问题,并且还因为不接受ss.str()而创建字符串。你知道更好的方法吗?
stringstream ss;
string dir;
// make dir output
ss.str(""); // set empty
ss.clear(); // clear bit flags
ss << "mkdir \"" << argv[2] << "\"";
dir = ss.str();
system(dir.c_str());
argv [2]来自:int main(int argc,char * argv []){...
有更好的想法吗?
答案 0 :(得分:1)
您应该使用提供该功能的便携式Boost.Filesystem库
create_directory
或使用目标环境提供的设施,例如适用于Linux的POSIX函数mkdir
。
Boost还提供了创建路径的功能,只需在引用中查找以找到所需内容。
使用system
命令是一个坏主意。
如果您和您的教授正在使用MSVC 2015或gcc5.3或更高版本,您可以使用C ++ 1z&#39; s create_directory
的实验性实现。它基于Boost,但Boost的支持范围更广。