美文网首页
11-16 ignore putback

11-16 ignore putback

作者: 当时光一去不复返时 | 来源:发表于2016-11-25 10:33 被阅读0次
#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;  
}

相关文章

网友评论

      本文标题:11-16 ignore putback

      本文链接:https://www.haomeiwen.com/subject/vdalpttx.html