第1个回答 2014-08-22
我来详细地给楼主解释一下这个程序的执行过程吧
cin读的是输入缓冲区(stdin)中的内容,只有缓冲区为空的时候才会要求用户输入,否则只是读取缓冲区的内容。
在第一次运行cin>>s的时候,
缓冲区为空,所以会显示下划线让你输入,线程挂起,然后你输入sdf sdf ssf sdf f EOF 回车
这时候,cin>>s返回,第一个sdf读进s,然后便输出sdf和换行
下一次执行cin>>s的时候,缓冲区不为空,所以不再要求用户输入,读取第二个sdf,然后输出sdf换行,依次类推
直到cin读到eof的时候,cin>>s返回false,循环退出,程序结束本回答被网友采纳