#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;
}
|