【问题标题】:Argv parameters conversion [duplicate]argv参数转换[重复]
【发布时间】:2012-09-27 12:55:26
【问题描述】:

可能重复:
Converting string to integer C

我想将从命令 argv[1] 收到的数字转换为“int”。我知道 argv 存储为字符串,但我怎样才能从它们那里得到一个整数值。假设 argv[1] = 10。

【问题讨论】:

    标签: command-line parameters argv argc


    【解决方案1】:

    您可以使用 C 标准库中的 atoi() 函数:

    http://en.cppreference.com/w/cpp/string/byte/atoi

    【讨论】:

    • -1 用于使用非标准功能,其中标准功能可用并仅使用链接回答。
    • @H2CO3 你错了,atoi 是标准化的——C 和 C++ 标准都包含它。也许你想到了itoa
    • @jons34yp 绝对正确!我总是混淆这些。对不起。
    【解决方案2】:

    POSIX C 库包含将字符串转换为实际数值的不同函数。以下是几个例子:

    long some_long = strtol(argv[1], NULL, 10);
    long long some_longlong = strtoll(argv[1], NULL, 10);
    unsigned long some_unsigned_long = strtoul(argv[1], NULL, 10);
    unsigned long long some_unsigned_longlong = strtoull(argv[1], NULL, 10);
    

    甚至还有转换为浮点值的函数:

    double some_double = strtod(argv[1], NULL);
    float some_float = strtof(argv[1], NULL);
    long double some_long_double = strtold(argv[1], NULL);
    

    如需进一步参考,read here 和其他一些地方(strtoul.html 和 strtod.html 在同一网页上)。

    【讨论】:

      猜你喜欢
      • 2021-02-28
      • 2014-10-26
      • 1970-01-01
      • 2014-10-22
      • 2015-01-28
      • 1970-01-01
      • 2018-08-12
      • 1970-01-01
      • 2018-01-14
      相关资源
      最近更新 更多