从命令行c ++计算两个数字

CRT*_*low 1 c++ command-line-arguments

这是我的代码:

#include <iostream>
using namespace std;

int main (int argc, char* argv[])
{
  int frstNumb = atoi (argv[1]);
  int scndNumb = atoi (argv[2]);
  int sum = 0;
  sum = frstNumb + scndNumb;
}
Run Code Online (Sandbox Code Playgroud)

好的,现在它正在为整数工作.我必须做什么,所以我可以在参数中添加"2.5和1.2"?该程序不会计算这种数字.救命?

谢谢

Arm*_*yan 5

参数始终作为字符串传递.首先,将main函数声明更改为

int main (int argc, char* argv[])
Run Code Online (Sandbox Code Playgroud)

请注意,main的返回值必须为int,否则为非标准.

第二次转换argv[1]argv[2]整数与其中任何atoi一个,根据我的口味,有点C-ish,虽然最简单,或者boost::lexical_cast

例如

int i1 = atoi(argv[1]); //#include <cstdlib>
int i1 = boost::lexical_cast<int>(argv[1]); //#include <boost/lexical_cast.hpp>
Run Code Online (Sandbox Code Playgroud)