getline()省略输出字符串的第一个字母

时间:2011-07-14 04:56:11

标签: c++

嗨,我是c ++的新手,正在做一些基本的练习。我的代码接受用户输入并将它们提供给数组。现在我使用getline()来获取输入字符串。我的代码如下:

cin.getline(cb[0].name, 200).get();        // Cadburry
cin.getline(cb[1].name, 200).get();        // Snickers
cin.getline(cb[2].name, 200);              // Milky Bar

但是当我输出字符串时,第一个getline()似乎没问题,但另外两个却省略了字符串的第一个字母。所以这种情况下的输出是:

Cadburry
nickers
ilky Bar 

任何人都可以告诉我为什么会这样?

1 个答案:

答案 0 :(得分:5)

get()调用正在消耗S和M,删除它们并且它将起作用。 getline()已经消耗了\ n