2016-11-01 68 views
0

我需要一隻手在C.處理命令行參數(在Windows)Process命令行參數

假設我有以下的情況

C:\Users\USER\Desktop> my_executable arg1 ' "A>200 && B<300 (just some conditions" ' 

在這種情況下的argc = 5換算

C:\Users\USER\Desktop> my_executable arg1 '"A>200 && B<300 (just some conditions"' 

在這種情況下的argc = 3

根據用戶的不同,argv和argc會有所不同。 我如何寫代碼,這樣的條件和Arg1可以正確地存儲:) 要求: ARG1被存儲到一個字符指針 條件也存儲到一個字符指針

感謝

+2

兩者都有argcount 3,因爲args是由空間決定的 –

+0

但是在我的PC上第一個有5 – Kenlucius

+0

@self它是由空間決定的''' –

回答

1

別除非你想實現自己的參數解析器,否則在Windows上使用單引號作爲參數引號。 ^可以用來逃脫"本身和其他一些事情。在參數中嵌入"使用""

如果您確實需要,請致電GetCommandLineW並自行解析。 GetCommandLineW返回一個字符串,其中包含可執行映像名稱,可能用雙引號括起來,後面跟着一個可選空格和完全按照給CreateProcess給出的參數(這意味着^處理已經發生)。

+0

那麼在窗口上應該如何「」類型的參數被傳遞嗎?他們應該簡單地是「什麼」???在Mac上怎麼樣?謝謝:) – Kenlucius

+0

你應該怎麼通過類型參數?'這是不容易逃脫'''在每種情況下在Windows中 –

+0

@LưuVĩnhPhúc哦,我的意思是。我們應該如何將「條件」傳遞給命令行?如果我們不像我的情況那樣使用單引號。它只是簡單的my_executable arg1「條件」??? – Kenlucius