dlp*_*hla 3 c++ variables cin c++11
请考虑以下代码:
int n;
if(!cin>>n)
{
cin.clear();
while(cin.get()!='\n')
continue;
}
cout<<n;
Run Code Online (Sandbox Code Playgroud)
输出是:
0
Run Code Online (Sandbox Code Playgroud)
为什么终端上没有任何提示键入输入值n?为什么未初始化n会0自动设置?
Mik*_*CAT 12
Logic NOT运算符的!优先级高于按位移位运算符>>.如果cin不是处于错误状态,!cin将成为false和!cin>>n将为零时n是零.使用括号检查读数是否成功.我想n碰巧是零.
int n;
if(!(cin>>n))
{
cin.clear();
while(cin.get()!='\n')
continue;
}
cout<<n;
Run Code Online (Sandbox Code Playgroud)