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



我成功地将前两行放置在它们所属的1D数组中,但是我很难将一系列int放入2D数组中。我最接近该解决方案的方法是使用以下代码:

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

但是,atoi仅解析第一个数字,然后丢弃其余部分。我需要将字符串中的每个数字放在数组的单独元素中。我尝试使用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/

10-11 22:38