2017-02-17 66 views
-1

我試圖在Linux中採用>形式的參數。 我試圖解決我的問題,是這樣的:比較符號C++

std::string big(">"); 

if (argv[3]==big) {....} 

,但它不喜歡這個工作。

但它的工作原理是這樣的:

std::string big("M"); 

if (argv[3]==big) {....} 

我想,我需要讓我的焦炭的ASCII CODEargv[3]比較。但argv[3]它是char的類型,我不能比較intchar。 你能幫我嗎?

+0

它工作正常,不需要任何ASCII碼怪異。問題可能是你正在使用的shell/terminal /命令行的東西是將'>'視爲特殊字符,而你需要編寫''>>''或'\>'。 – nwp

+0

而'argv [3]'是'char *'。 – LogicStuff

+0

@nwp對不起,但是我可以像'>'那樣做,並且不使用其他任何東西嗎? –

回答

2

大多數shell(包括Windows CMD)都以特殊方式處理符號<,>|<是輸入重定向,>是輸出重定向,而|是將輸出從一個進程輸出到另一個進程。

因此,您將永遠無法將這些符號作爲您的進程的參數,命令行環境將使用它們,並且不會將它們傳遞給您的程序。

具有後臺作業支持的Unix shell還將&添加到組合中。

+0

很傷心(謝謝你的回答! –