美文网首页
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