2011-04-25 51 views
0

我正在编写一个程序,它只接受一个命令行参数。该参数需要在[0,INT_MAX]范围内。采用argv [1]并将其转换为int的最佳方式是什么,同时确保它是有效的整数?接收整数命令行参数

+1

你有'atoi()'函数吗? – alex 2011-04-25 02:14:33

+0

可能重复的[转换字符串整数sscanf或atoi](http://stackoverflow.com/questions/3420629/convert-string-to-integer-sscanf-or-atoi) – karlphillip 2011-04-25 02:24:45

回答

4

argv[1]是第一命令行Arg和strtoul()转换成无符号整数

另外的argc是参数的数量,因此检查它是至少2主叫argv[1]

之前(argc个计数节目名称)严格strtoul()是C++,但大多数c编译器支持它的标准库,它需要'c'样式字符*字符串

+1

我想你的意思,“arg 0是程序名“。 – 2011-04-25 02:17:03

+0

@ argc所关心的第一个参数是程序名称 - 将尝试并明确说明 – 2011-04-25 02:18:53

+3

strtoul是标准C – 2011-04-25 02:21:44