我只是在几年没有使用它之后回到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类型,而不仅仅是常规字符串,但经过一些测试后我不确定如何实现它。
答案 0 :(得分:1)
那是因为c ++无法将std::string
明确地转换为const char*
你需要使用
std::string::c_str()
将返回const char *的函数:
system(command.c_str());