我如何逐行循环输入,并在C ++中遍历每一行;

时间:2017-01-30 00:18:43

标签: c++ loops input

所以我试图逐行输入。输入中的每一行格式如下:

  

Words_More words_even more words_我需要经历_ Random_ Random_Etc。

随机数量的单词簇(单词用'_'分隔)

我希望,对于每一行,能够忽略所有单词,直到我到达第四个单词群集,在我给出的示例中将是:“我需要经历的内容”,然后将这些单独的单词存储在我尚未决定的一些数据结构。

我的第一个想法是使用

    getline(cin, trash, '_'); 

三次并处理后面的数据,但那么我将如何逐行循环直到输入结束?

1 个答案:

答案 0 :(得分:1)

您基本上有两个选择:

为每一行使用getline,然后解析它

使用getline(stream, string)从流中获取一行,并将其存储到字符串中。然后构造一个istringstream再次解析(使用您想到的getline

得到你需要的东西,然后ignore()填充下一个换行符

您执行getline()项操作,然后致电ignore() (doc) 读取并丢弃剩下的行,这样你就可以重新开始下一行了。

您使用哪一个取决于您。但如果你关心那些东西,那么第二个的表现稍好一些。