cin.sync(); /* 清空缓存区 */ cout<<"输入一个数字:";cin>>x; }while(!cin.good());
因为cin返回的是成功读取的数据个数,0也是int型,返回值是1,while(1)是成立的,继续循环。如果是输入字母就退出了,因为成功读取的数据是0个,while(0)是不成立的,不需要按Ctrl+z退出,只要数据是非法的即可退出!不信看我截图,可行望采纳,谢谢:...
while(cin>..#include<iostream>using namespace std;int main(){long double a[1000]={0},sum=0;double b=0;int
void main(){ char ch[4];char c;while((c=getchar())!='\n'){ cout<<"请输入ch[]:";cin>>ch;cout<<ch<<endl;break;} } 好像只能这样
cin 当从键盘上进行输入并按下回车时,输入的字符就会被送到输入缓冲区进行存储,且以空白字符为分隔符。 window 下 如果本行存在输入字符的情况下,在行尾加 ctrl+z 并且回车之后并不会结束输入,而是将 ctrl+z 当作一个字符来解释,将该字符当作普通字符缓冲并输出。
这个问题比较常见,因为输入一个字母后,此字符始终在缓冲区内(在上述情况下不会被cin读出,因为是个字母而不是数字) 所以要避免死循环,可以调用cin.ignore(1000, '\n ');和cin.clear()。cin.clear()是清除输入流的状态,并不清除输入缓冲区。即 int a; cout<<"输入:";cin>>a;if(cin....