我还是C ++的新手,正在研究一种在我的C ++程序中打开程序的方法。 问题是,只要我的路径中有空格,它就会将其视为不同的参数。
int _tmain(int argc, _TCHAR* argv[])
{
system("C:\\Users\\blah\\Desktop\\a\\ b.txt");
return 0;
}
我收到的输出是:
'C:\Users\blah\Desktop\a\' is not recognized as an internal or external command, operable program or batch file.
答案 0 :(得分:3)
您可以双引号字符串文字。 修改:还注意到你的反斜杠没有被转义,所以在下面更新:P
system("\"C:\\Users\\blah\\Desktop\\a\\ b.txt\"");
同样让记录知道你真的不应该使用system
。尝试fork,spawn,甚至是非官方的boost.process类,它具有与.NET进程类相似的功能,具体取决于您的需求。还要考虑为什么需要从流程中启动流程...也许你可以创建一个库?
答案 1 :(得分:1)