小于3 LOC的int命令行参数?

时间:2018-07-09 12:48:47

标签: c++ c++11 c++14 c++17

How to convert a command-line argument to int?,显示了如何将comand行参数赋给一个整数。

我正在寻找短途旅行。不使用atoi()

int size;
istringstream s(argv[1]);
s >> size;

有了所有很棒的C ++ 11/14/17,我仍然需要3个LOC吗?还是周围有int size = magic(argv[1])

1 个答案:

答案 0 :(得分:-1)

您可以使用std::atoi

int size = std::atoi(argv[1]);

请注意,它提供了糟糕的错误报告-它仅返回0,因为无法执行转换。更好的选择是std::stoi,它接受​​std::string并在错误时引发异常:

int size = std::stoi(argv[1]); // note implicit conversion from const char * to std::string