C语言 : 怎么得到命令行参数传入的整数

时间:2022-12-06 14:28:36
看下面代码及问题:


#include <stdio.h>

int main(int argc,char *argv[])
{
  int getnum;

  if(argc == 2)
  {
    getnum =*( int*)argv[1]; //这样不行额~  不知道怎么样才能获得命令行输入的整数参数
  }

  return 0;
}

9 个解决方案

#1


用atoi函数

getnum = atoi(argv[1]);

#2


命令行都是字符串
你需要自己解析而不是强制转换

#3


引用 2 楼 xianglitian 的回复:
命令行都是字符串
你需要自己解析而不是强制转换
yes

#4


嗯,解析……

#5


只能得到字符串

#6



#include <stdio.h>

int main( int argc, char **argv ) {
   while ( --argv ) {
      printf( "%d\n", atoi(*++argv) );
   }
   return 0;
}
#gcc -Wall -g cmd.c
#./a.out 1 2 3 4 5
1
2
3
4
5

#7


引用 6 楼 hitlion2008 的回复:
C/C++ code

#include <stdio.h>

int main( int argc, char **argv ) {
   while ( --argv ) {
      printf( "%d\n", atoi(*++argv) );
   }
   return 0;
}
#gcc -Wall -g cmd.c
#./a.out 1 2 3 4 5
……

正解~!

#8


用itoa,或者自己编写函数

#9


引用 6 楼 hitlion2008 的回复:
C/C++ code

#include <stdio.h>

int main( int argc, char **argv ) {
   while ( --argv ) {
      printf( "%d\n", atoi(*++argv) );
   }
   return 0;
}
#gcc -Wall -g cmd.c
#./a.out 1 2 3 4 5
……


哦 ,了解了~~~ 

#1


用atoi函数

getnum = atoi(argv[1]);

#2


命令行都是字符串
你需要自己解析而不是强制转换

#3


引用 2 楼 xianglitian 的回复:
命令行都是字符串
你需要自己解析而不是强制转换
yes

#4


嗯,解析……

#5


只能得到字符串

#6



#include <stdio.h>

int main( int argc, char **argv ) {
   while ( --argv ) {
      printf( "%d\n", atoi(*++argv) );
   }
   return 0;
}
#gcc -Wall -g cmd.c
#./a.out 1 2 3 4 5
1
2
3
4
5

#7


引用 6 楼 hitlion2008 的回复:
C/C++ code

#include <stdio.h>

int main( int argc, char **argv ) {
   while ( --argv ) {
      printf( "%d\n", atoi(*++argv) );
   }
   return 0;
}
#gcc -Wall -g cmd.c
#./a.out 1 2 3 4 5
……

正解~!

#8


用itoa,或者自己编写函数

#9


引用 6 楼 hitlion2008 的回复:
C/C++ code

#include <stdio.h>

int main( int argc, char **argv ) {
   while ( --argv ) {
      printf( "%d\n", atoi(*++argv) );
   }
   return 0;
}
#gcc -Wall -g cmd.c
#./a.out 1 2 3 4 5
……


哦 ,了解了~~~