为什么只有一个变量MyString,最后可以一起输出很多行呢,是缓冲区吗?

string MyString;
while( cin >> MyString)
cout<<MyString;

这个语句是如下输入
jdksl fdfkf jdakl kjks
最后回车的结果是分行打印。

慕桂英3389331
浏览 138回答 2
2回答

BIG阳

cin 是带缓冲区的输入,空白字符做分隔符。你的代码相当于while()执行了四次(仍没有结束,需要EOF),你可以加一个计数器确认一下:int count = 0;while (cin >> MyString){cout << MyString << endl; // endl是不是漏了,有它才是分行打印吧count ++;}cout << "count = " << count << endl;

慕标琳琳

while函数是一个循环,只要cin >> MyString这个条件判断正确,那么就一直循环下去,结束的标志是结束控制符,Windows下,ctrl+z(control-z)来输入文件结束符;Unix系统中,包括Mac OS-x机器,通常用control-d。
打开App,查看更多内容
随时随地看视频慕课网APP