c++ - 当我们不给 C 可执行程序任何参数时如何处理异常

标签 c++ c file exception

<分区>

我有一个 C 程序,它应该被赋予如下参数:

./program -i inputFile -o outputFile

这是我的相关代码部分

  while ((c = getopt(argc, argv, "i:o:")) != -1) {
            switch (c) {


                 case 'i':
                          inFile = strdup(optarg);
                 break;
                 case 'o':
                          outFile = strdup(optarg);
                 break;
                 default:

                          error_usage(argv[0]);

                      }
                }

还有 error_usage 函数:

void error_usage(char *prog)
      {
        fprintf(stderr, "Usage: %s  -i inputfile -o outputfile\n", prog);
        exit(1);
      }

如果我像下面这样运行我的程序,我应该如何修改我的 case 语句: ./程序 它给了我以下错误? 用法:prog -i 输入文件 -o 输出文件

最佳答案

在你调用getopt之前,检查argc

if ( argc == 1 )
{
  fprintf(stderr, "... ");
  return -1;
}

关于c++ - 当我们不给 C 可执行程序任何参数时如何处理异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18952077/

相关文章:

c++ - 如何在C++中以二进制方式将列表容器写入文件

c++ - 类和重新编译

C++ 应用程序不会终止

c# - ungetc相当于c#

python - TypeError : expected str, 字节或 os.PathLike 对象,而不是 _io.TextIOWrapper

c++ - 从flex+bison输出AST到main.cpp

C -- (void*) 到 int

c++ - -fPIC 忽略目标(所有代码与位置无关),无用警告

iPhone 存储图像的最佳方式

java - 在 Grails 中放置文本文件的位置,以及如何获取路径