如何在C ++中为system()函数提供字符串

时间:2014-12-13 08:00:56

标签: c++ system xcopy

我只是在几年没有使用它之后回到C ++,并且我正在尝试做一个" xcopy"通过system()函数命令。

我认为它只会给它一个字符串,所以我做了类似的事情:

string command = "xcopy " + source + " " + string(1,cInternalDrive) + ":\\" + workspace + " /D /E /C /R /H /I /K /Y /EXCLUDE:" +  exclude;
system(command);

设置后的命令值为" xcopy F:\ Workspace *。* D:\ Workspace \ / D / E / C / R / H / I / K / Y / EXCLUDE:F:\ ignore.txt"这是我想要的值,但system()不喜欢变量命令。

它说错误:没有合适的转换函数来自:std :: string" to" const char *"存在。 经过一些研究后,我发现系统应该采用cstring类型,而不仅仅是常规字符串,但经过一些测试后我不确定如何实现它。

1 个答案:

答案 0 :(得分:1)

那是因为c ++无法将std::string明确地转换为const char* 你需要使用 std::string::c_str() 将返回const char *的函数:

system(command.c_str());