zoukankan      html  css  js  c++  java
  • C++ 流

    iostream_test.cpp

    #include <iostream>
    using namespace std;
    #include <stdlib.h>
    #include <iomanip>

    void cin_test(){
        /*
        if(-12) //0 为 false 非0[正数+负数] 为 true
            cout<<"ok"<<endl;
        else
            cout<<"error"<<endl;
        */
        int i;
        //c语言中不能做错误判断
        if(cin>>i)
            cout<<i<<endl;
        else{
            cout<<"error"<<endl;
            cin.clear();
            cin.ignore(); //清空缓冲区
        }
    }


    void string_test(){
        string s1="itao"; //运算符重载
        string s2("love"); //构造函数
        cout<<s2.c_str()<<'\t'<<s1.c_str()<<endl;
    }

    iostream继承层次




    /*C++语言: 输出格式化*/
    void cout_test(){
        int i=15;
        cout<<dec<<i<<endl; //十进制 15
        cout<<hex<<i<<endl; //十六进制 f
        cout<<oct<<i<<endl; //八进制 17
        /*需要引入 iomanip*/
        cout<<setbase(16)<<i<<endl; //setbase(n) n为进制[16 10 8]
        cout<<setw(10)<<setfill('a')<<setbase(16)<<i<<"++++"<<endl; //aaaaaaaaaf++++
        cout<<setw(10)<<setfill('a')<<setbase(16)<<setiosflags(ios::left)<<i<<"++++"<<endl; //faaaaaaaaa++++
        //setw(int n) :填充宽度
        //setfiell(char c): 填充字符 和 填充宽度 配合使用
        //setiosflags(ios::left) //向左对齐  默认向右对齐
        float f = 0.0141534;
        cout<<setprecision(3)<<f<<endl;//setprecision(int n)填充精度 0.0142
        cout<<setiosflags(ios::fixed)<<f<<endl; //0.014
        /*
        setiosflags(ios::fixed)
            以固定的小数位输出
            ios 是枚举

        */
        cout<<setiosflags(ios::scientific)<<f<<endl; //0.0142
        /*
        setiosflags(ios::scientific)
            scientific:以科学计数法显示
        */
        cout<<resetiosflags(ios_base::_Fmtflags::fixed)<<i<<endl;
        /*
        
        */
    }

    输入输出流格式控制—流实现

     

    输入输出流格式控制—流对象成员控制输出

     

    输入输出流格式控制-综合案例



    /*C语言: 输出 格式化*/
    void printf_test(){
        float f =  0.0141534;
        printf("%+10.3f", f);
        printf("%s\n", "itao");
        printf("%-10.3f", f);
        printf("%s\n", "itao");
        /*
        打印结果:
                +0.0142itao
            0.0142     itao
            Press any key to continue
        结论:
            %10.3f
            10为填充 10 个空字符
            .3表示 填充精度
            +:表示右对齐 【默认】
            -:表示左对齐
        //printf("%010.3f", f);
        //10前面的0 表示 f 前面补 10 个 0
        */
    }

    int int_to_string(){
        int i=12;
        char j[3];
        j[0]=i/10+48;
        j[1]=i%10+48;
        j[2]=0;
        printf("%s\n", j);
        printf("%c\n", 49);
        printf("%c\n", 50);
        //cout<<"Hello Wold"<<endl;
        return 0;
    }

    string_test.cpp

    #include <iostream>
    #include <string>
    #include <fstream>
    using namespace std;

    void main(){
        //关于string
        //1、 string直接相加与 operator= 赋值操作符
        string a="qin ";
        string b="tang ";
        string c=a+b+"tao";
        //2、采用cout直接输出
        cout<<c<<endl;
        //3、字符串比较
        cout<<(a>b)<<endl;
        //4、size和length 得到字符串的大小
        cout<<c.length()<<endl;
        cout<<c.size()<<endl;
        //5、operator[] 取第几个运算 相当于数组
        cout<<c[0]<<endl;
        //6、insert 插入字符
        c.insert(0, "love ");
        cout<<c<<endl;
        //7、 append 增加字符
        c.append(" mm");
        cout<<c<<endl;
        c+="ww"; //运算符重载
        cout<<c<<endl;
        //8、 replace 替换字符
        c.replace(1, 2, "hh"); //1 为起始位置 2 为偏移量
        cout<<c<<endl;
        //9、截取hh 与 find
        string d=c.substr(c.find('h'), 3);
        /*
        c.find('h')  找到字符h在string中的第一个位置
        3            截取的长度
        */
        cout<<d<<endl;
        //10、operator>> 从输入流中读入字符串
        string e;
        cin>>e;  //注意:输入的字符串有空格  从第一个空格后面的舍弃
        cout<<e<<endl;
        //11、从文件流中读取
        ifstream ifs;
        ifs.open("D:\\Junit\\test1.txt");
        if(!ifs){
            cerr<<"error open............";
        }
        ifs>>e; //只会读取 文件的 第一行  并且 数据后面有空格 的后面部分舍弃
        cout<<e<<endl;
    }

    file_test.cpp

    #include <iostream>
    #include <fstream>
    #include <string>
    using namespace std;


    /*判断文件打开 是否成功*/
    void isOpenFile(){
        ifstream ifs; //输入文件流
        ifs.open("D:\\Junit\\test4.txt");
        if(!ifs){ //判断文件打开 是否成功
            cerr<<"error open.........."<<endl;  //cerr  输出错误信息
        }else{
            cout<<"ok open.........."<<endl;
        }
    }

    void read_line_text(){
        ifstream ifs; //输入文件流
        ifs.open("D:\\Junit\\test1.txt");
        /*
        char i[20];
        while(1){
            //ifs>>i; //读文件
            if(!ifs.getline(i, 20)) //读取 行
                break;
            cout<<i<<endl;
        }
        */
        string i;
        while(1){
            //ifs>>i; //读文件
            if(!getline(ifs, i)) //读取 行
                break;
            cout<<i<<endl;
        }
        cout<<endl;
        ifs.close();
    }

    void read_char_text(){
        ifstream ifs; //输入文件流
        ifs.open("D:\\Junit\\test1.txt");
        char i;
        int j;
        while(1){
            //ifs>>i; //读文件
            ifs.get(i);
            j=ifs.eof();
            if(ifs.eof()) //判断是否读到文件末尾
                break;
            cout<<i;
        }
        cout<<endl;
        ifs.close();
    }

    void write_char_text(){
        ofstream ofs;  //输出文件流
        ofs.open("D:\\Junit\\test1.txt");
        char i;
        while(1){
            cin>>i; //从屏幕读
            if(i=='#')    
                break;
            ofs<<i; //写文件
        }
        ofs.close();
    }

    C语言读写文本文件与C++对照

    C语言读写二进制件与C++对照

     

  • 相关阅读:
    javaWeb 使用 filter 处理 html 标签问题
    javaWeb 使用 filter 处理全站乱码问题
    Kubernetes常见部署方案--滚动更新、重新创建、蓝绿、金丝雀
    阿里云
    Kubernetes技术分析之灰度升级
    fetch进行post请求为什么会首先发一个options 请求?
    免费给你的网站加速,全球访问速度杠杠的
    抗DDOS,我选Cloudflare,免费!
    被骗几十万总结出来的Ddos攻击防护经验!------转自 服务器之家server
    微服务部署:蓝绿部署、滚动部署、灰度发布、金丝雀发布
  • 原文地址:https://www.cnblogs.com/qintangtao/p/2765542.html
Copyright © 2011-2022 走看看