c - cmd参数语法错误

标签 c syntax-error command-line-arguments

#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/

相关文章:

c - 这段代码发生了什么

c# - 使用此 INSERT INTO 语句和 .NET OleDb 命名空间时如何解决语法错误?

java - 预期 token 存在语法错误

c++ - 如何在 C++ 中通过命令行参数传递常量 int?

bash - 将可变数量的 bash 命令行参数传递给 MATLAB 函数

python - 如何传递文件中包含的命令行参数并保留该文件的名称?

c - 在 malloc() 之后使用 realloc() 来改变 unsigned char 数组的大小

c - 没有连接请求时accept()返回SOCKET_ERROR

haskell - 交换列表的前两个元素,(Haskell)

c - 与 Geforce 相比,Tesla 的内核开销要少多少?