while()
中发生了什么? 输入流最终有EOF吗?
#include<iostream>
using namespace std;
int main()
{
char str[10];
while(cin.get(str,10))
cout<<str<<endl;//only run once,why
return 0;
}
您正在调用的iStream::Get
重载读取直到换行(\n
),但不读取换行本身。
下次遇到换行并且无法读取任何内容时,设置failbit
,这将导致运算符bool()
返回false
,循环退出。
请改用Cin.GetLine
。