c++ - C++检查命令行参数

标签 c++ exception command-line

我需要在命令行参数中检查两个单独的文件名。

./a.out hello.txt hello2.txt


当两个文件名相同时,以下代码不会产生错误。

  #include <stdio.h>
  #include <iostream>
  #include <stdexcept>

  using namespace std;

  int main (int argc, char *argv[])
  {
     try
     {
        if (argc != 3 || argv[1] == argv[2])
        {
           throw invalid_argument("Error");
        }
     }
     catch (invalid_argument &ex)
     {
        cout << ex.what() << '\n';
     }
  }

最佳答案

argv是字符串,因此您无法比较“ ==”运算符。您在string.h中使用strcmp

if (argc != 3 || strcmp(argv[1],argv[2])==0)
    {
       throw invalid_argument("Error");
    }

关于c++ - C++检查命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37559407/

相关文章:

c++ - 我应该使用公共(public)指针吗?

java - 比较数据的异常(exception)情况

java - 您如何断言在 JUnit 测试中抛出了某个异常?

git - 是否有命令行工具可以实时显示 git 状态?

java - 如何通过java执行cmd命令

unix - 如何使用 Unix 命令收集文本文件中的字符使用统计信息?

java - 在基类中提供检查实例类型是一种好习惯吗

c++ - 如何在不使用临时变量或算术运算的情况下交换两个数字?

python - 如何检查 TypeError 是否针对 NoneType

c++ - 返回对 std::function-wrapped lambda 中静态变量的引用会导致段错误