-3
我一直無法解析用下面的代碼的生成可執行文件:
如何解析以下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.我使用Code :: Blocks與MinGW32,如果這件事。
遇到問題:
當我執行使用CMD如下 -
1. build.exe -i 「d:\ OA 2 \ Due.exe」 我的生成
2.構建.EXE -i 「d:/ OA 2/Due.exe」,
結果是一些喜歡 -
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.
我知道,我必須解析3 次參數與曲OTES。
此外,該結果應該是喜歡 -
"D:/OA 2/Due.exe"
"D:/OA 2/Due.exe" -ver > "C:\DueVER"
整個 Due.exe文件的位置必須用引號覆蓋,但這並沒有發生。
代碼中出了什麼問題?
我懷疑這個問題可能在'\「C:\\ DueVER \」'上有四個反斜槓,當我認爲*你只需要2:'\「C:\\ DueVER \」'。另一部分(雖然過於複雜)似乎適用於我(但我在Linux上,所以......)。 – Galik
@Galik 我用雙反斜槓。它沒有幫助。 – codenameXera