다음 코드의 빌드와 실행 구문 분석 할 수 없었습니다 :
다음 C++ 코드에서 인수를 구문 분석하는 방법은 무엇입니까?
#include <iostream>
#include <fstream>
#include <string.h>
#include <windows.h>
using namespace std;
int main(int argc,char** argv)
{
if(argc==3)
{
if(strcmp(argv[1],"-i")==0)
{
string DueEXE, DueVER;
DueEXE = DueVER = "";
DueEXE += argv[2];
cout << endl << DueEXE;
DueVER += "\"" + DueEXE + "\" -ver > \"C:\\\\DueVER\"";
cout << endl << DueVER << endl << endl;
system(DueVER.c_str());
}
}
return 0;
}
전제 조건 :
1 DueEXE가에 파일 위치를 보유하고를 * .exe가 -ver 또는 --ver와 함께 사용되면 해당 버전을 인쇄합니다 (콘솔에서).
2. Windows XP SP3을 사용합니다.
3. MinGW32에서 Code :: Blocks를 사용합니다.
문제가 발생 :
2. 빌드 :
내가 cmd를
1 build.exe -i follows-로 "\ OA 2 \ Due.exe D"를 사용하여 내 빌드를 실행하면 .EXE -i "D :/OA 2/Due.exe"
결과는 내가 한때와 3 번째 인수를 구문 분석 할 필요가 있음을 알고 같은 -
D:/OA 2/Due.exe
D:/OA 2/Due.exe -ver > "C:\DueVER"
'D:/OA' is not recognized as an internal or external command,
operable program or batch file.
뭔가 .
또한, 결과는 전체 Due.exe 파일 위치를 따옴표로 덮여해야하지만 그렇게하지 않는
"D:/OA 2/Due.exe"
"D:/OA 2/Due.exe" -ver > "C:\DueVER"
로 삼았해야한다.
코드에서 어떤 문제가 있습니까?
필자는 * \ C : \\ Duevere \ "'만 필요하다고 생각할 때 '\"C : \\\\ DueVER \ "에 4 개의 백 슬래시가있을 수 있다고 생각합니다. 다른 부분 (over-complex)은 나를 위해 작동하는 것처럼 보입니다. (하지만 저는 리눅스를 사용하고 있습니다 ....). – Galik
@Galik 이중 백 슬래시를 사용했습니다. 도움이되지 않습니다. – codenameXera