c++ - 读取字符串作为命令行参数 C++

标签 c++ parsing command-line

我想读取一个字符串并用 C++ 解析它以从命令行将它转换为 double 并获取 vector 中的每个数字

'1.1,2.3,3.4,4.6,5.8,6.9,7.8,8.0,9.9,10.11,11.67'

std::string tempInput;
tempInput = argv[1];
vector <double> example; 

std::vector< std::string > tokens;
while ( std::cin >> tempInput ) {
   example.push_back( <double>( tempInput )  );
}

那么最简单的方法是什么/

最佳答案

用空格替换所有逗号:

std::string input = "1.1,2.3,3.4,4.6,5.8,6.9,7.8,8.0,9.9,10.11,11.67";

std::replace(input.begin(), input.end(), ',', ' ');

std::vector<double> result;
std::istringstream inputStream(input);

double value;
while (inputStream >> value)
    result.push_back(value);

inputStream >> std::ws;
if (!inputStream.eof())
    // Handle input error

或者,考虑 std::istream_iterator 而不是 while 循环:

std::vector<double> result;
std::istringstream inputStream(input);

std::copy(std::istream_iterator<double>(inputStream),
          std::istream_iterator<double>(),
          std::back_inserter(result));

关于c++ - 读取字符串作为命令行参数 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8980293/

相关文章:

javascript - 是否有一个简单的 Javascript 库或脚本来处理简单的逻辑测试?

objective-c - 在 Mac OS X 上将命令行应用程序转换为 Cocoa GUI 应用程序?

为 Arduino 编写 Windows 命令行 com 端口

parsing - 形式语法权力的实际后果?

linux - 如何使用一个命令 ssh 自动连接跳线或代理和服务器

c++ - 数组大小错误 x64 进程

c++ - 如何更改 C++'11 中指针的所有权?

C++测试与菜单应用

c++ - 返回不可复制常量值的函数的不直观 RVO?

Python 正则表达式反向引用命名组