c - main(int argc, char *argv[]) 损害了我的程序

标签 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);

    // ...

并尝试运行它,没有任何输出出现,并且命令行关闭。有人能告诉我为什么会发生这种情况吗?

最佳答案

将您的程序更改为:

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

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

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

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

关于c - main(int argc, char *argv[]) 损害了我的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24236574/

相关文章:

c - 通过指针打印二维数组

ruby rack - 无法在中间件中修改 ARGV?

c++ - C++ 中的 argc argv 参数 - (游戏编程)

c - C中基于事件的套接字编程

c - (uint16_t*) 和 (uint32_t*) 有什么区别?

c - pthread_create 期间大小为 8 的无效写入

c++ - 在代码中创建 argc argv

perl - 我可以使用 <> 运算符跳过整个文件吗?

cmake - 在 CMake 中枚举控制台参数 (argv)

c++ - QApplication app(argc, argv)