我在使用 Visual C++ Express 2010 将命令行参数传递到程序时遇到问题。我发现命令参数正在调试并使用以下输入,只是术语之间有空格。该文件位于我的项目文件夹中,其中包含 .c 源代码。
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;
}
最佳答案
应该是int main(int argc, char *argv[])
除此之外,我还没有看到你的程序有任何其他问题。
关于命令行参数不适用于 Visual C++ Express 2010,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13443413/