#include<stdio.h>
#include<string.h>
char *operator[][10] = { {"(",")","[","]","->","."},
};
int main(int argc,int *argv[])
{
int len = sizeof(operator)/sizeof(operator[0][0]);
for( int k = 1 ; k < argc ; k++ )
printf("%s ",argv[k]);
printf("\n");
for( int i = 0 ; i < 2 ; i++ )
{
for( int j = 0 ; j < 6 ; j++ )
{
for( int k = 1 ; k < argc ; k++ )
if( !strcmp( argv[k],operator[i][j]) )
printf("%s",operator[i][j]);
}
}
return 0;
}
编译后,我想测试“->”是否有效,所以我使用命令test.exe ->
,结果语法错误。但是当我改变命令时test.exe "->"
它有效。我想知道这是否与订单语法有关。
p.s 我的操作系统是 win7,我使用 Dev-cpp。
感谢您的帮助。
最佳答案
>
对命令提示符有特殊意义,它用于将输出重定向到文件。您需要引用它才能按字面意思对待它。
顺便说一句,我认为你程序中的这一行是错误的:
int len = sizeof(operator)/sizeof(operator[0][0]);
应该是:
int len = sizeof(operator)/sizeof(operator[0]);
关于c - cmd参数语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20824899/