Я пытаюсь запустить .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, поэтому он должен быть в цитатах. Я нашел его здесь:
С++: как сделать мою программу открытой .exe с дополнительными аргументами
поэтому я буду голосовать за дублирование, так как вопросы довольно близки, хотя мы не получали одинаковое сообщение об ошибке, спасибо!