我有一个命令的字符串,例如: 开始C:Users...test application.exe
具有空格的路径。
现在我想使用system()
函数来启动它:
system(command.c_str());
但问题是,它没有启动,因为路径包含一个空格。 我该怎么做才能解决这个问题?
我该怎么做才能解决这个问题?
你需要知道的第一件事是system()
使用 shell 来执行命令,如果路径包含空格,shell 希望你用""
将程序路径括起来。
使用当前的C++标准,最简单的修复方法是使用原始字符串文字:
std::string command = R"("C:Userstest application.exe")";
system(command.c_str());
否则(对于较旧的C++标准),您需要转义所有特殊字符:
std::string command = "("C:\Users\test application.exe")";
// ^ ^ ^ ^