一个简单的c++cin.getline()函数的问题

#include <iostream>

using namespace std;
int main()
{
char pc[20];
while(1)
{
cin.getline(pc,10,'\n');
cout<<pc<<endl;
}

}
为什么输入大于10个字符就死循环了
输入大铅模纤中于9个字符就要failbit了

#include <iostream>

using namespace std;
int main()
{
char pc[20];
while(1)
{
cin.getline(pc,10,'\n');
cin.clear(); // set back to goodbit
cout<槐竖缓<pc<<endl;
}
}
while(1)一直是死循环啊