我正在尝试让我的c ++程序在notepad ++中打开一个sql文件。我可以用这样的记事本打开它:
system("notepad.exe script_foo.sql");
但这是不受欢迎的,因为它没有格式化。当我尝试用notepad.exe替换notepad ++。exe时这样:
system("'C:\Program Files\Notepad++\notepad++.exe' script_foo.sql");
我的语法错误无效。
我出错的任何问题?
答案 0 :(得分:2)
WinNT shell使用双引号在文件名中包含空格。单引号无法识别。所以你需要
"C:\Program Files\Notepad++\notepad++.exe" script_foo.sql
作为你的命令。
要将其嵌入到C ++源代码中,您需要转义反斜杠(正如Andre已经提到的那样)以及双引号。
system("\"C:\\Program Files\\Notepad++\\notepad++.exe\" script_foo.sql");
答案 1 :(得分:1)
在C ++中,反斜杠字符\
是字符串中的escape character。你需要加倍反斜杠来实现你真正想要的东西:
system("'C:\\Program Files\\Notepad++\\notepad++.exe' script_foo.sql");