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

很伤心(谢谢你的回答! –