2

我在使用 Visual C++ Express 2010 将命令行参数传递给我的程序时遇到问题。我发现命令参数正在调试并使用以下输入,它们之间只是带有空格的术语。该文件位于我的项目文件夹中,带有 .c 源代码。

测试文件1.txt 2

当我在 main 下静态定义 char 指针时,程序运行良好。所以在这一点上,我不确定问题出在 2010 还是代码上。我还没有想出以其他方式编译和执行来测试命令行参数的方法。如果有人可以编译它并查看它是否适用于他们的系统,那就太好了。

    #include <stdio.h>
    #include <stdlib.h>

    #define BUFFER_SIZE 256

    int main(char *argv[])
    {
       //char *argv[] = { "program", "TestFile1.txt", "2" };
       char buf[BUFFER_SIZE];
       FILE *inFp;

       printf("%s",argv[1]);
       if ((inFp = fopen (argv[1], "r")) == NULL)
       {
          fprintf(stderr, "Can't open file\n");
          exit(EXIT_FAILURE);
       }

       fclose(inFp);
       return 0;
    }
4

1 回答 1

2

应该是int main(int argc, char *argv[])除此之外,我没有看到您的程序有任何其他问题。

于 2012-11-18T18:55:48.387 回答