如何在turbo c ++中将整数作为命令行参数传递

时间:2009-09-08 16:54:44

标签: c++ command-line turbo-c++

我无法通过turbo c ++中的命令行传递整数值。 请帮帮我。

5 个答案:

答案 0 :(得分:9)

您只能将参数传递给可执行文件作为字符串。您可以使用std::atoi将字符串转换为整数。

int main(int argc, const char* argv[])
{
  if ( argc > 1 ) {
    int i = atoi( argv[1] );
  }

  return 0;
}

答案 1 :(得分:6)

您必须将其作为字符串传递,然后使用atoistrtol之类的内容进行解析。

命令行参数总是字符串(或char* s,如果你想挑剔:)

答案 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函数。这个允许更灵活的命令行参数。

甚至还有命令行解析框架,允许进行类型检查和批次。