2016-11-15 129 views
-2

我正在Visual Studio中開發C++命令行應用程序,需要使用命令行參數對其進行調試。我只是用我需要的參數運行生成的EXE文件(就像這個program.exe -file.txt),但這種方式我不能debug.i希望我的程序用不同的參數執行多次。我發現我應該右鍵單擊我的項目/在屬性/調試/命令參數框中,然後鍵入我的arguments.but我想有我的程序運行11每個不同arguments.i想調用我的exe文件與不同爭論每次。我應該如何爲每次運行分配我的變量並創建一個exe文件?我應該在命令參數框中指定所有參數,或者沒有使用空格進行一次運行並使用進入其他運行的前綴?在Visual Studio中將C++傳遞給main函數2015

+1

某處在項目設置有設置命令行參數的方式。但要小心,程序的工作目錄可能不是你期望的,所以如果你傳遞一個文件的路徑,不要使它相對而是絕對路徑。 –

+1

你可以運行一個批處理文件,而不是循環並用args調用你的exe文件,但是真正的問題是什麼?解析命令行參數有問題嗎?你能寫一個單元測試來測試解析,在這種情況下? – doctorlove

+1

現在擺脫命令行參數(即,不是在'main'中使用'argc'和'argv''',準備一個輸入文件名列表,並將它們傳遞給實際的代碼,一次一個一個循環)。 –

回答

1

如果你想調試你的源代碼,那麼運行可執行文件不是一個好主意。

擺脫的命令行參數,現在,而不是main使用argcargv,準備輸入文件名列表,並在同一時間(在一個循環中)傳遞給實際的代碼之一。

例如:

void MyFunc(const char* fileName) 
{ 
    ... 
} 

int main() 
{ 
    const char* fileNames[] = 
    { 
     "file1.txt", 
     "file1.txt", 
     ... 
    }; 

    for (size_t i=0; i<sizeof(fileNames)/sizeof(*fileNames); i++) 
    { 
     MyFunc(fileNames[i]); 
    } 

    return 0; 
}