命令行参数不适用于visual c++;快车2010 我使用VisualC++快件2010将命令行参数传递给程序。我在调试中找到了命令参数,并使用了以下输入,只是在它们之间有空格的术语。该文件与.c源代码一起位于我的项目文件夹中

命令行参数不适用于visual c++;快车2010 我使用VisualC++快件2010将命令行参数传递给程序。我在调试中找到了命令参数,并使用了以下输入,只是在它们之间有空格的术语。该文件与.c源代码一起位于我的项目文件夹中,c,visual-c++,command-line-arguments,C,Visual C++,Command Line Arguments,TestFile1.txt 2 当我在main下静态定义char指针时,程序运行良好。所以在这一点上,我不确定问题是2010年还是代码。我还没有找到一种编译和执行命令行参数的方法。如果有人能编译这个,看看它是否能在他们的系统上运行,那就太好了 #include <stdio.h> #include <stdlib.h> #define BUFFER_SIZE 256 int main(char *argv[]) {

TestFile1.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;
    }
#包括
#包括
#定义缓冲区大小256
int main(字符*argv[]
{
//char*argv[]={“程序”,“TestFile1.txt”,“2”};
char buf[缓冲区大小];
文件*inFp;
printf(“%s”,argv[1]);
if((inFp=fopen(argv[1],“r”)==NULL)
{
fprintf(stderr,“无法打开文件”\n);
退出(退出失败);
}
fclose(inFp);
返回0;
}

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

我知道
intmain(intargc,char*argv[])
是执行此操作的典型方法,但我不关心计数。我知道第一个参数是argv[1],第二个参数是argv[2]。据我所知,我应该可以这样做。@jordan你面临什么问题?@jordan,不:不管你喜欢与否,第一个参数都是int。使用
main
参数列表,它将尝试将该int解释为指向字符的指针。该程序构建良好,但当我尝试调试时,它崩溃。MyPrograms.exe中0x010d13fd处未处理的异常:0xC0000005:访问冲突读取位置0x00000007。CXX0030:错误:表达式不能为空evaluated@jordan这是因为您试图访问系统上不允许的内存位置“3”。我打赌是SIGSEGV故障还是0xC00000005故障?