我无法通过turbo c ++中的命令行传递整数值。 请帮帮我。
答案 0 :(得分:9)
您只能将参数传递给可执行文件作为字符串。您可以使用std::atoi
将字符串转换为整数。
int main(int argc, const char* argv[])
{
if ( argc > 1 ) {
int i = atoi( argv[1] );
}
return 0;
}
答案 1 :(得分:6)
答案 2 :(得分:6)
您不能从命令行传递整数,只能传递字符串。传入您的号码,并使用::atoi
(或任何其他转换函数)将其转换为整数
答案 3 :(得分:1)
我真的很想知道为什么你仍然坚持古老的编译器!你越早切换到现代编译器就越好! 无论如何,这样做的代码如下:
#include<stdlib.h>
#include<iostream.h>
int main(int lenArgs, char *args[]){
int num = 0;
if (lenArgs > 1){
num = atoi(args[1]);
}
else{
cout<<"Please give an argument to the program!";
return 1;
}
cout<<num<<endl;
return 0;
}
答案 4 :(得分:0)
如果你只是一次传入它,并且你不需要维护你可以给你的main函数的参数,你可以转换C ++运行时为你的程序提供的char*
参数使用int i = atoi( argv[1] )
。
如果您要获得更多参数,您可能也想要一些方法来命名它们。那么值得看一下getopt
函数。这个允许更灵活的命令行参数。
甚至还有命令行解析框架,允许进行类型检查和批次。