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

    // ...


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

最佳答案

将程序更改为此:

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

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

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


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

07-24 09:46
查看更多