파일을 가져 와서 계산을 한 다음 지정된 파일에 출력을 쓰는 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\" ");
이 다 밖으로 콘솔 인쇄 : \ 첫번째 유효한 명령이 아닙니다. 아마 일반적인 실수 일 뿐이지 만 간단한 해결책이 있지만 아무 것도 찾을 수 없습니다. 어떤 도움을 Thx.
공간을 이스케이프 처리해 보셨습니까? – Troubadour
UNIX 시스템에서 이것은 쉘의 책임이며 작동해야합니다. Windows에서 누가 그 책임을 맡고 있는지 확실하지 않지만 MSVC++ 또는 MinGW 또는 Cygwin 중 어떤 것을 사용하든 차이가 있습니다. 어떤 컴파일러를 사용하고 있는지 말해 줄 수 있습니까? –
이것은 왜 작동하는지 모르지만 다음과 같은 이유 때문일 수 있습니다 :'std :: system ("\"\ "c : \\ 첫 번째 경로 \\ app.exe \"-input \ "c : \\ 두 번째 경로 \\ input.file \ "\" "); ' – Naveen