cin小问题

#include <iostream> using namespace std; #include <limits> int main() { char city[10]; do { cout<<"please input a string(max length 9):"<<"/n"; if(!cin) cin.clear(); cin.getline(city,10,'/n'); bool isEOF = cin.eof(); if(!isEOF) { cout<<"delete"<<"/n"; cin.ignore(numeric_limits<streamsize>::max(), '/n'); //当cin状态不正常时,该函数调用直接返回 } cout<< city << "." <<"/n"; }while(true); system("pause"); return 0; }

  1. (!cin)被重载为cin.fail()。
  2. 当输入大于9时,cin状态会被置为failbit。
  3. 当cin处于failbit,badbit,eofbit时,ignore不会执行,即程序不会被阻塞等待用户输入需要被忽略的字符。

你可能感兴趣的:(String,System,input,include)