我无法通过 turbo c++ 中的命令行传递整数值。请帮我。
Kumar
问问题
26831 次
5 回答
10
您只能将参数作为字符串传递给可执行文件。您可以使用std::atoi
将字符串转换为整数。
int main(int argc, const char* argv[])
{
if ( argc > 1 ) {
int i = atoi( argv[1] );
}
return 0;
}
于 2009-09-08T17:35:45.880 回答
6
您不能从命令行传递整数,只能传递字符串。传入您的数字,并使用::atoi
(或任何其他转换函数)将其转换为整数
于 2009-09-08T16:58:23.257 回答
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;
}
于 2009-12-26T08:52:47.277 回答
0
如果您只为此一次传递它,并且不需要维护可以提供给 main 函数的char*
参数,则可以转换 C++ 运行时为您的程序提供的参数,使用int i = atoi( argv[1] )
.
如果您要拥有更多参数,您可能还需要某种方式来命名它们。然后值得看一下该getopt
功能。这允许更灵活的命令行参数。
甚至还有命令行解析框架允许类型检查和很多。
于 2009-09-08T17:27:46.927 回答