cin预先,有没有办法判断输入字符的长度

cin之前,有没有办法判断输入字符的长度?
char arr[30];
cout<<"input your name:"<<endl;
cin>>arr;//这里的确会发生缓冲出溢出,要怎么解决?

------解决方案--------------------
用string。、
------解决方案--------------------
fgets(...);
------解决方案--------------------
探讨

用string。、

------解决方案--------------------
打错了..
arr[29]='\0'.就可
------解决方案--------------------
C/C++ code
std::string str;
cout<<"input your name:"<<endl;
cin>>str;//