#include<iostream>#include<map>#include<list>#include<string>using namespace std;int main(){int i,a;while(!cin.eof()){cout<<"输入i:"<<endl; cin>>i;cout<<"i输入完毕:"<<endl; cout<<"输入a:"<<endl; cin>>a; cout<<"a输入完毕:"<<endl;if(cin.bad()||cin.fail()){fflush(stdin);cout<<"流状态已刷新^"<<endl;cin.clear();continue;}}cout<<i<<a<<endl;}关于这个输入输出流的问题我是越弄越迷糊了,我在while条件里设置的条件是文件结束的时候结束while循环,如果是其他错误的时候就刷新输入流 (使用fflush(stdin)函数刷新输入流,不知道对不对) 然后重新输入,但是为什么,当我输入文件结束符的时候它也刷新缓冲区呢?晕了,谁能给我讲讲c++输入输出的工作原理~