我有一个 C++ 程序试图用两个参数调用一个可执行文件。该代码在 Mac 上运行良好,但在 Windows 上存在一些问题。我相信这个问题与参数中的空格有关,因为当我使用没有空格的路径时,它工作得很好。
此外,我打印出我要发送的内容system()
,然后在命令行上运行该打印输出,它工作得很好,这很简单。
我这样打电话:ret = system(cmd.c_str());
如果我这样做:cout << cmd << endl;
我会得到这样的东西:
"C:\Program Files (x86)\MyProgram\some_executable.exe" "C:\Users\me\Desktop\files"
我不确定为什么引号没有帮助,我在system()
通话中的路径周围加上引号。cmd 的打印输出正是我想要运行的,但它不起作用。但是,如果该路径中没有空格,它将执行得很好。
关于将带有空格的参数传递给system()
调用的任何建议?