Mam tę aplikację konsoli Windows, która pobiera plik, wykonuje pewne obliczenia, a następnie zapisuje dane wyjściowe do określonego pliku. Dane wejściowe są określone w formacie "app.exe -input fullfilename". Muszę wywołać tę aplikację z mojego programu C++, ale mam problem ze spacjami w ścieżkach do plików. Gdy zadzwonię do aplikacji bezpośrednio z programu cmd.exe, wpisując (bez określenia pliku wyjściowego dla jasności):Jak przekazywać parametry ze spacjami poprzez system cstdlib
"c:\first path\app.exe" -input "c:\second path\input.file"
wszystko działa zgodnie z oczekiwaniami. Ale gdy próbuję za pomocą cstdlib std :: System function(), tj
std::system(" \"c:\\first path\\app.exe\" -input \"c:\\second path\\input.file\" ");
drukuje konsoli uwagę, że c: \ pierwszy nie jest jakaś ważna komenda. To prawdopodobnie typowy błąd i proste rozwiązanie, ale nie udało mi się znaleźć żadnego. Thx za pomoc.
Czy próbowałeś również uciec z przestrzeni? – Troubadour
W systemach UNIX jest to odpowiedzialność powłoki i powinna działać. Nie jestem pewien, kto ma tę odpowiedzialność w Windows, ale założę się, że robi różnicę, czy używasz MSVC++ lub MinGW lub Cygwin. Czy możesz nam powiedzieć, z jakiego kompilatora korzystasz? –
To wydaje się działać, nie wiem dlaczego: 'std :: system (" \ "\" c: \\ pierwsza ścieżka \\ app.exe \ "-input \" c: \\ druga ścieżka \\ input.file \ "\" ");' – Naveen