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