这里重置错误标记后为什么还是不能输入,而我把clear和while循环位置交换又可以了

img

因为cin不读‘\n’啊,然后cin.get()读到了,所以你进入错误循环中的while循环直接就退出了

如果输入不是数字! 把错误的输入字符用cin.get()清出输入流,从新再来接受


int golf[5];


for (int i=0;i<5;i++){


  while(!(cin>>golf[i])){


   cin.clear();


   while(cin.get()!='/n') continue;


   count<<"Please enter again";


  }


}