main(int argc,char * argv [])会破坏我的程序

时间:2014-06-16 04:13:34

标签: c argv argc

首先,我应该告诉你我使用DEV C ++来编写我的程序。

好的,到现在为止......我写了一个程序,从一个名为" candidates1.txt" 的文件中获取输入。 所以,第一行是:

main() {
    FILE *fp;

    fp = fopen("candidates1.txt", "r");
    fscanf(fp, "%d %d", &N, &length);

   // ...

其余的我认为不重要。如果我像这样运行程序,我得到了理想的输出。但是,如果我改变它:

main(int argc, char *argv[]) {
    FILE *fp;

    fp = fopen(argv[1], "r");
    fscanf(fp, "%d %d", &N, &length);

    // ...

并尝试运行它,没有任何内容显示为输出,命令行关闭。有人能告诉我为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

将您的计划更改为:

main(int argc, char *argv[])
{
  FILE *fp;

  if (argc < 2)
  {
     printf ("Please supply an argument\n") ;
     return 1 ;
  }

  fp=fopen(argv[1],"r");
  ....

并查看输出结果。可能你没有为你的程序提供命令行参数。