Как открыть файл в блокноте с помощью C ++? - PullRequest
0 голосов
/ 09 февраля 2012

Я пытаюсь заставить мою программу на c ++ открыть файл sql в notepad ++.Я могу открыть его с помощью блокнота следующим образом:

system("notepad.exe script_foo.sql");

Но это нежелательно, поскольку он не отформатирован.Когда я пытаюсь заменить notepad.exe на notepad ++. Exe, вот так:

system("'C:\Program Files\Notepad++\notepad++.exe' script_foo.sql");

Я получаю недопустимую синтаксическую ошибку.

Есть вопросы, где я ошибаюсь?

Ответы [ 2 ]

2 голосов
/ 09 февраля 2012

Оболочка WinNT использует двойные кавычки для включения пробелов в имя файла. Одиночные кавычки не распознаются. Так что вам нужно

"C:\Program Files\Notepad++\notepad++.exe" script_foo.sql

как ваша команда.

Чтобы встроить это в исходный код C ++, вам необходимо избежать обратной косой черты (как уже упоминал Андре), а также двойных кавычек.

system("\"C:\\Program Files\\Notepad++\\notepad++.exe\" script_foo.sql");
1 голос
/ 09 февраля 2012

В C ++ символ обратной косой черты \ является escape-символом в строках. Вам нужно удвоить обратную косую черту, чтобы достичь того, чего вы действительно хотите:

system("'C:\\Program Files\\Notepad++\\notepad++.exe' script_foo.sql");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...