Я пытаюсь запустить .exe, который требует некоторых параметров, используя system( ).
Если в пути к .exe И в пути к файлу, переданному в параметрах, есть пробел, я получаю следующую ошибку:
The filename, directory name, or volume label syntax is incorrect.
Вот код, который генерирует эту ошибку:
#include
#include
int main (){
system("\"C:\\Users\\Adam\\Desktop\\pdftotext\" -layout \"C:\\Users\\Adam\\Desktop\\week 4.pdf\"");
_getch();
}
Если "pdftotext"' s не использует кавычки (они мне нужны, потому что иногда в каталоге будут пробелы), все работает нормально. Кроме того, если я помещу то, что находится в «system()», в строку и выведу ее, а затем скопирую в фактическое командное окно, это сработает.
Я подумал, что, может быть, я мог бы объединить некоторые команды, используя что-то вроде этого:
cd C:\Users\Adam\Desktop;
pdftotext -layout "week 4.pdf"
Таким образом, я уже был бы в правильном каталоге, но я не знаю, как использовать несколько команд в одной и той же функции system().
Может ли кто-нибудь сказать мне, почему моя команда не работает или сработает ли второй способ, о котором я думал?
Редактировать: Похоже, мне понадобился дополнительный набор кавычек, потому что system() передает свои аргументы в cmd /k, поэтому он должен быть в кавычках. Я нашел это здесь:
C++: Как заставить мою программу открывать .exe с необязательными аргументами
, поэтому я проголосую за закрытие как дубликат, поскольку вопросы довольно близки, хотя мы не получали то же самое сообщение об ошибке, спасибо!