【问题标题】:How to use arguments with fopen?如何在 fopen 中使用参数?
【发布时间】:2016-01-10 18:49:31
【问题描述】:

我必须编写一个使用这样的参数的 C 程序:

App.exe -in file.txt

我知道一些关于 argv 和 char *argc 但是..我如何使用 fopen 的参数?我不知道!

【问题讨论】:

    标签: c arguments


    【解决方案1】:

    [请注意,这并不能回答问题,但它确实显示了如何使用参数]

    首先了解参数,以及如何处理它们。然后你就知道如何使用参数并将文件名传递给fopen(或任何其他)函数。

    先试试这个小程序:

    #include <stdio.h>
    
    int main(int argc, char *argv[])
    {
        printf("argc = %d\n", argc);
    
        for (size_t a = 0; i < argc; ++a)
        {
            printf("argv[%zu] = \"%s\"\n", a, argc[a]);
        }
    }
    

    如果你像这样执行这个程序

    args.exe -in file.txt

    输出应该是

    argc = 3 argv[0] = "args.exe" argv[1] = "-in" argv[2] = "file.txt"

    【讨论】:

      【解决方案2】:

      您需要解析 argv 以检查它是否包含您想要的内容。

      int main(int argc, char** argv)
      {
          if (argc < 3)
          {
              printf("bad usage");
          }
      
          if (strcmp(argv[1], "-in") == 0)
          {
              char* filename = argv[2];
              FILE* f = fopen(filename);
          }
      }
      

      【讨论】:

      • 相等比较永远不会成立。您需要改用strcmp
      • main 原型是怎么回事?
      • 现在应该没问题了
      猜你喜欢
      • 2010-09-12
      • 1970-01-01
      • 2019-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-25
      • 2021-07-15
      • 1970-01-01
      相关资源
      最近更新 更多