cmd参数中的语法错误

尼布纳特
#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 "->"时,它仍然有效。我想知道它是否与顺序语法有关。ps我的操作系统是win7,我使用Dev-cpp。谢谢你的帮助。

巴尔玛

>对命令提示符有特殊含义,它用于将输出重定向到文件。您需要引用它才能按字面意义对待它。

顺便说一句,我认为您程序中的这一行是错误的:

int len = sizeof(operator)/sizeof(operator[0][0]);

它应该是:

int len = sizeof(operator)/sizeof(operator[0]);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章