美文网首页上嵌学习笔记
第十一章 io和文件操作

第十一章 io和文件操作

作者: ie大博 | 来源:发表于2016-11-16 15:45 被阅读12次

    ignore的一点应用

    using namespace std;
    int main()
    {
        string s;
        cout<<"请输入一串字符";
    
        cin.ignore(8,' ');//输入时忽略前八个字符,或者忽略遇到空格之前的内容。空格为结束符
        cin>>s;
        cout<<"string s ="<<s<<endl;
    
        return 0;
    
    }
    

    putback的使用

    #include<iostream>
    using namespace std;
    int main()
    {
        char ch;
        cin.putback('a');//把a放在缓存流中
        cout<<"请输入一个ch的数据";
        cin>>ch;//如果缓存流中有东西,就不用继续输入了
        cout<<"char ch ="<<ch<<endl;
        return 0;
    
    }
    

    peek:窥视

    {
        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;
        }
        return 0;
    
    }
    

    流操作算子

    Paste_Image.png
    int main()
    {
        int i=11;
        cout<<oct<<i<<endl;//这个位置放置
        return 0;
    
    }
    

    精度控制

    Paste_Image.png
    #include<iostream>
    #include<iomanip>
    using namespace std;
    int main()
    {
        double root2=3.14159312;
    
        for(int places =0;places <= 9;places++)
        cout<<setprecision(places)<<root2<<'\n';
        return 0;
    
    }
    

    设置cout域宽

    int main()
    {
        int t1[5]={321,5312,43143242,232,1};
        int t2[5]={7645,3654,54,6,8};
        for(int i=0;i<5;i++)
        {
            cout.width(10);//设置域宽为10
            cout<<t1[i];
        }
        cout<<endl;
        for(int j=0;j<5;j++)
        {
            cout.width(10);
            cout<<t2[j];
        }
        cout<<endl;
        return 0;
    
    }
    

    cin的域宽设置,这里面的死循环可以用Ctrl+d退出

    这里面如果输入的东西超过5,它就会在另外一行继续输入

    int main()
    {
        char n[20]={0};//这里还必须是字符形式。
        cin.width(5);
        while(cin>>n)
        {
            cout<<"n = "<<n<<endl;
            cin.width(5);
        }
        return 0;
    
    }
    

    自己制作一个命令,tab

    using namespace std;
    ostream& tab(ostream& output)
    {
        return output<<'\t';
    }
    int main()
    {
        cout<<"n"<<tab<<'a'<<endl;//这里的tab就是相当于\t.
        return 0;
    
    }
    

    limits

    #include<limits>//注意这个头文件
    int main()
    {
        int a;
        int b;
        cin>>a;
        cout<<"a="<<cin.good()<<endl;
        if(!cin.good())
        {
            cin.clear();
            cin.ignore(numeric_limits<streamsize>::max(),'\n');//忽略缓存流里面的所有内容
        }
        cout<<"cin2 ="<<cin.good()<<endl;
        cin>>b;
        cout<<"b="<<b<<endl;
        return 0;
    
    }
    

    文件操作

    读写文件

    #include<iostream>
    #include<iomanip>
    #include<fstream>//或者fstream
    using namespace std;
    int main()
    {
    /*  ofstream ofile("zyz1");//写文件
        ofile<<"pear"<<" "<<4.5;//写的内容
        ofile.close();*//关闭文件
        ifstream ifile("zyz1");//读文件
        char sztext[20];//
        double price;
        ifile>>sztext>>price;//读文件内容出来
        cout<<sztext<<" "<<price;//打印出来
        ifile.close();
        return 0;
    }
    

    二进制读写文件

    ofstream ofile("zyz2",ios::out|ios::binary);//用二进制写入文件
        char temp[20]="nihao";
        ofile.write(temp,20);//字符串名字,+长度
        ofile.close();
        ifstream ifile("zyz2",ios::in|ios::binary);//二进制读文件
        char temp[20];//读20个字符
        ifile.read(temp,20);
        cout<<temp<<endl;
        ifile.close();
    

    文件指针

    #include<fstream>
    using namespace std;
    int main()
    {
        ifstream ifile("exam.txt");
        if(NULL==ifile)
        {
            cout<<"文件打开失败"<<endl;
            return -1;
        }
        ifile.seekg(0,ios::end);//它的意思应该是设定一个指针,从第一个位置开始查,到最后有多少个
        cout<<"get point position:"<<ifile.tellg()<<endl;
        ifile.close();
        return 0;
    }
    

    相关文章

      网友评论

      本文标题:第十一章 io和文件操作

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