#include#include using namespace std; int main() { char s1[100],b[13]; cout << "getline(s1,10):"; cin.getline(s1, 10); cout << "s1: "< >b; cout << "b: "< 如上代码运行时,输入:test a program 结果如下
getline(s1,10):test a program s1: test a pr b:可以看到在cin语句对应的输入流没有任何分隔符的情况下,b没有获得任何数据输入。
但当将
cin.getline(s1,10);改为
cin.get(s1,10);运行结果如下
getline(s1,10):test a program s1: test a pr b: ogramb成功地获取了数据流中的数据。所以这是否说明getline()会自动给数据流添加分隔符呢?否则是什么阻断了下一行输入语句对数据流的读取?
并且将cin>>b改成get函数或者getline函数都会出现同样的情况,而且当向c.getline(s1,10)输入数据时,如果输入字符个数少于其最大个数用换行符停止输入,下一条输入语句依然可以正常输入。
学习文件操作的时候发现了这个问题,没弄懂,所以提出了自己的一点想法,欢迎大佬指点



