逐行将数据存储到数组中

时间:2019-11-26 23:04:01

标签: c++

我需要将数据存储到两个数组中,这两个数组按照“名称”然后“数字”的顺序存储

例如:

Kara

000131012

Tucker

002102000

我了解如何使用单行方法:

while (infile >> a >> b)
{
    // process pair (a,b)
}

但这不适用于存储数据的方式。

1 个答案:

答案 0 :(得分:1)

我不确定这么晚才添加答案(以及这个简单的问题)有多明智,但我想清楚一点,因为评论中有些误解。

>>如何工作?

operator>>首先会丢弃Als前导空格字符(空格,制表符,换行符,也许更多,这取决于语言环境)。然后它将尝试读取尽可能多的非空白字符(因此将输入为int i; cin >> i;的{​​{1}}设置为123123jji)。然后,它将潜在地设置故障位,eofbit或badbit,这会影响流的布尔值。

这对您的代码意味着什么?

如果您的姓名始终不包含空格字符,则您的代码将完全独立于每行字数运行。如果您可以保证无空格的名称,那么我建议您采用这种方式,因为它很容易,并且如果您的输入有点错误并且在某个时候有双换行符,也不会出现问题。

如果名称中可能包含空格,则上面的代码将失败。然后,您必须使用std::getline。链接页面上有很好的用法说明。