У меня есть это консольное приложение для Windows, которое берет файл, выполняет некоторые вычисления и затем записывает вывод в указанный файл. Ввод указан в формате «app.exe -input fullfilename». Мне нужно вызвать это приложение из моей программы на C++, но у меня есть проблема с пробелами в пути к файлам. Когда я называю приложение непосредственно из cmd.exe, введя (без указания выходного файла для ясности)Как передать параметры с пробелами через систему cstdlib
"c:\first path\app.exe" -input "c:\second path\input.file"
все работает, как ожидалось. Но, когда я пытаюсь с помощью cstdlib зОго :: системы() функции, т.е.
std::system(" \"c:\\first path\\app.exe\" -input \"c:\\second path\\input.file\" ");
консоли печатает, что C: \ первая не любая допустимая команда. Вероятно, это распространенная ошибка и имеет простое решение, но я не смог ее найти. Thx для любой помощи.
Вы тоже пытались избежать пробелов? – Troubadour
В системах UNIX ответственность за это лежит на оболочке, и она должна работать. Я не уверен, кто несет ответственность за Windows, но я уверен, что имеет значение, используете ли вы MSVC++ или MinGW или Cygwin. Не могли бы вы рассказать нам, какой компилятор вы используете? –
Это похоже на работу, но не уверен, почему: 'std :: system (" \ "\" c: \\ first path \\ app.exe \ "-input \" c: \\ второй путь \\ input.file \ "\" ");' – Naveen