【发布时间】:2012-04-25 04:53:31
【问题描述】:
我正在编写一个小程序,它将读取一个包含 5 条记录中的 3 行的纯 ASCII 文本文件,如下所示:
f_name l_name
ID#
int int int int
我成功地将前 2 行放入它们所属的一维数组中,但我无法将整数系列放入二维数组中。我最接近解决方案的方法是使用以下行:
studentScores[row][col] = atoi(input.c_str());
但是,atoi 只解析第一个数字,然后丢弃该行的其余部分。我需要将字符串中的每个数字放在数组的单独元素中。我尝试使用 stringstream,但无法使其正常工作;显然,我想使用的函数包含在与我使用的不同版本的 stringstream 中。
我可以用什么来解析这个字符串?
【问题讨论】:
-
sscanf 会读取一个 C 字符串,并提取 4 个空格分隔的整数。
-
@gbulmer :大概这是为了家庭作业或学习练习——如果是这样,我认为向学习 C++ 的人推荐 C API 不是一个好主意。
-
是的,这是一个编程作业,大约在 3 小时后到期。我整个星期都在努力。
-
@Opcode : 以后请将作业标记为
homework。 :-] -
@ildjarn - 使用 atoi 的 OP,并且 atoi 和 sscanf 在 C++ 中都可用,例如cplusplus.com/reference/clibrary/cstdio/sscanf 在卡住时避免使用它们,恕我直言,比“不是一个好主意”更糟糕 :-)