我需要将数据存储到两个数组中,这两个数组按照“名称”然后“数字”的顺序存储
例如:
Kara
000131012
Tucker
002102000
我了解如何使用单行方法:
while (infile >> a >> b)
{
// process pair (a,b)
}
但这不适用于存储数据的方式。
答案 0 :(得分:1)
我不确定这么晚才添加答案(以及这个简单的问题)有多明智,但我想清楚一点,因为评论中有些误解。
>>
如何工作?
operator>>
首先会丢弃Als前导空格字符(空格,制表符,换行符,也许更多,这取决于语言环境)。然后它将尝试读取尽可能多的非空白字符(因此将输入为int i; cin >> i;
的{{1}}设置为123123jj
到i
)。然后,它将潜在地设置故障位,eofbit或badbit,这会影响流的布尔值。
这对您的代码意味着什么?
如果您的姓名始终不包含空格字符,则您的代码将完全独立于每行字数运行。如果您可以保证无空格的名称,那么我建议您采用这种方式,因为它很容易,并且如果您的输入有点错误并且在某个时候有双换行符,也不会出现问题。
如果名称中可能包含空格,则上面的代码将失败。然后,您必须使用std::getline
。链接页面上有很好的用法说明。