#include<iostream>
using namespace std;
int main()
{
string s;
cout<<"请输入一串字符:";
//忽略输入缓冲区前8个字符
//如果前八个字符中存在结束符,那么就忽略结束符之前 的字符
cin.ignore(8,' '); //设置' '为结束符
cin>>s;
cout<<"string s="<<s<<endl;
return 0;
}
cin.putback(' ');//cin 是去输入缓存拿东西,如果没有就等待输入,putback就是往输入缓存放东西
#include<iostream>
using namespace std;
int main()
{
char ch;
cin.putback('a');
cout<<"请输入一个ch数据:";
cin>>ch; //由于输入缓存流已经有东西,所以不会等待输入
cout<<ch<<endl;
return 0;
}
#include<iostream>
using namespace std;
int main()
{
int i;
string s;
cout<<"start"<<endl;
char ch=cin.peek(); //查看缓存流第一个字符
cout<<"end"<<endl;
if((ch>='0')&&(ch<='9'))
{
cin>>i;
cout<<"int i="<<i<<endl;
}
else
{
cin>>s;
cout<<"string s="<<s<<endl;
}
}
//有一个致命缺陷,因为只能查看缓存流第一个字符,所以后面的字符无法判断
#include<iostream>
using namespace std;
int main()
{
int i=11;
cout<<hex<<i<<dec<<i<<endl;'
cout<<setbase(8)<<i<<endl; //只能设为8,16,10进制
}
流算子操作符串在后面<<
函数用 .
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
char n[34]={0};
cin.width(5); //设置读取字符宽度
while(cin>>n)
{
cout<<"n="<<n<<endl;
cin.width(6);
}
return 0;
}
#include<iostream>
#include<iomanip>
#include<limits>
using namespace std;
int main()
{
int a;
int b;
cin>>a;
cout<<"a="<<a<<endl;
cout<<"cin1="<<cin.good()<<endl; //验证cin是否是好的,如果好的返回1
if(!cin.good())
{
cin.clear(); //恢复cin
cin.ignore(numeric_limits<streamsize>::max(),'\n'); //清空输入缓存流
}
cout<<"cin2="<<cin.good()<<endl;
cin>>b;
cout<<"b="<<b<<endl;
return 0;
}
网友评论