关于缓冲区的刷新问题
#include <iostream>#include <iomanip>using namespace std;int main(){ ///// cout<<left<<setw(10)<<"OK"; cin.ignore();//用于刷新缓冲区 cout<<left<<setw(10)<<123<<endl;//endl用于换行和刷新缓冲区 ///// cout<<left<<setw(10)<<"OK"<<endl; cout<<left<<setw(10)<<123<<endl; ///// cout<<left<<setw(10)<<"OK"; //cin.sync()//cin.clear() cout<<left<<setw(10)<<123<<endl; ///// cout<<left<<setw(10)<<"OK";//<<flush;//<<ends;//<<unitbuf;//<<nounitbuf; cout<<left<<setw(10)<<123<<endl; //由此引发了一个问题 //cin.sync(),cin.clear() flush ends unitbuf nounitbuf 不都是刷新缓冲区吗? //为什么它们与ignore和endl 在屏幕上的输出有明显不同,哪位大神解释一下这个问题。 //同样刷新了缓冲区,却得到了不一样的结果!搞得我有点糊涂了。 return 0;}