在cpp中,通过cin>>获取输入是非常常见的操作。
值得注意的是:当string中包含空格、tab和回车时都会结束输入,比如:

怎么才能获取string中的空格呢?
可以使用#include<string>库中的getline函数实现。

TAB制表符也能获取

妈的,后来发现一个更严重的问题,就是当正常输入一个cin以后,再调用getline会出现意想不到的结果,就是无论如何都没有对s的输入,现象就是看起来像直接跳过s:

打断点发现,在输出之前直接通过一个cin就完成了,即使经过了getline,也没有给s值(毕竟我们还没有按理想的情况给s输入),那么是为什么会跳过getline呢?

原因是cin的最后系统默认给了一个换行符,这个换行符导致了getline的问题。
可以通过cin.ignore()避免这个换行符的检测:

547

被折叠的 条评论
为什么被折叠?



