-7

首先,我应该告诉你,我使用 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);

    // ...

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

4

1 回答 1

1

将您的程序更改为:

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

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

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

看看输出是什么。可能您没有为程序提供命令行参数。

于 2014-07-18T13:58:33.470 回答