c++ - 从 Getline 解析空格分隔的数字

标签 c++ parsing getline

我正在编写一个小程序,它将读取包含 3 行 5 条记录的纯 ASCII 文本文件,如下所示:

f_name l_name
ID#
int int int int

我成功地将前两行放入了它们所属的一维数组中,但是我无法将整数系列放入二维数组中。我最接近解决方案的方法是使用以下行:

studentScores[row][col] = atoi(input.c_str());

但是,atoi 只解析第一个数字,然后丢弃该行的其余部分。我需要将字符串中的每个数字放在数组的单独元素中。我尝试使用 stringstream,但无法正常工作;显然,我想使用的函数包含在与我正在使用的不同版本的 stringstream 中。

我可以用什么来解析这个字符串?

最佳答案

#include <string>
#include <sstream>

// ...

int ints[4];
std::string input;
std::getline(stream, input);
std::istringstream(input) >> ints[0] >> ints[1] >> ints[2] >> ints[3];

(为简洁起见省略了错误处理。)

关于c++ - 从 Getline 解析空格分隔的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10130432/

相关文章:

c++ - 显示 vector 的所有元素

parsing - 如何在apache nutch中爬行提取html中特定div的值?

检查字符串中的特定字符

perl - 如何在列表中拆分管道分隔的字符串?

c++ - 从控制台读取一行

c++ - "dynamically allocated memory emulating multi-dimensional array"的正确术语?

c++ - 判断字段是否为NULL

c++ - 元组适用于 nullptr 但不适用于 NULL

C++ 文件 IO 寻找特定行

C++:getline 不是参数列表的一部分