【问题标题】:Visual Studio 2010 C++ Unexpected Command Line ArgsVisual Studio 2010 C++ 意外的命令行参数
【发布时间】:2012-06-04 00:34:02
【问题描述】:

请告诉我如何输入:

2 3 4 + *

进入 VS 2010 命令行。 我正在研究一个反向波兰表示法程序。输入需要char *argv。 每当我将2 3 4 + * 放入VS 2010/Project/Debugging/Cmd Line Args 时,我都会使用printf("%s", argv) 来获取,

D5x --> 其中 x 是一些垃圾字符。

谢谢, 凯文

【问题讨论】:

    标签: c command-line-arguments


    【解决方案1】:

    argv 是一个指向字符串的指针数组。尝试用printf("%s", argv) 打印它永远不会给你任何有用的东西,因为%s 告诉printf 期待一个字符串。

    试试这样的:

    for (int i = 0; i < argc; i++) {
        printf("[%d] - %s\n", i, argv[i]);
    }
    

    【讨论】:

    • 在使用命令行参数和您的代码时出现此异常。 ReversePolishNotation.exe 中 0x548913af (msvcr100d.dll) 处的未处理异常:0xC0000005:访问冲突读取位置 0x00000044。
    【解决方案2】:
    #include <stdio.h>
    
    int main(int argc, char **argv){
        int i;
        for(i=1;i<argc;++i){
            printf("%s ", argv[i]);
        }
    }
    
    >prog 2 3 4 + *
    2 3 4 + *
    

    【讨论】:

      猜你喜欢
      • 2012-06-05
      • 2011-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-20
      • 1970-01-01
      相关资源
      最近更新 更多