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

标签 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 

谁能告诉我为什么会这样?

最佳答案

get() 调用正在消耗 S 和 M,删除它们即可工作。 getline() 已经消耗了\n

关于c++ - getline() 省略输出字符串的第一个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6688642/

相关文章:

c++ - 用 "if"建模 "for"

c++ - 我应该更喜欢在类方法中使用静态类变量还是静态变量?

c++ - 为什么二维 std::array 不能用两层列表初始化器初始化?

c++ - memorystream - stringstream,字符串,其他?

使用 erase() 时出现 C++ std::vector 段错误,在 g++ 中使用 pop_back() 时正常

c++ - 如何追踪 LLVM verifyFunction 错误 "Expected no forward declarations!"?

c++ - 当一个函数调用另一个函数时,它使用的内存会发生什么变化?

c++ - 类图: Can I share a composition?

c++ - 如何使用 range-v3 成对地转换范围?

c++ - boost::lockfree::spsc_queue 分配器最大大小?