学C++day09文件IO

STL库中的算法

1. STL库中的算法具有通用性,可以用于STL库里面所有的容器
2. 必看算法
          find()
          统计计数count
          拷贝copy()   
                 注意:拷贝会修改容器中的值,拷贝不能作用于set,set不能修改  
                           拷贝之前,你的容器需要有一定的空间
          循环for_each
          最大max
          最下min
          移动move
          删除remove
          替换replace
          逆序、反转reverse
          搜索 search
          排序 sort

练习:
1. 定义一个vector,随机从键盘输入10个整数,要求把10个整数偶数按照升序排列,奇数按照降序排列,存放到vector

Lambda表达式

 1. Lambda表达式也叫做匿名函数,本质上是个名字的函数
 2. 语法规则:将一元谓词、二元谓词函数转换成Lambda表达式
            转换公式:  [](参数){  函数的源码   }
                               注意:如果函数的返回值不是bool类型,需要把返回值类型也写一下
                                          []返回值类型  (参数){  函数的源码   }
            bool  fun(const int &n)
            {
                       return n>10;
            }
            转换成Lambda   [](const int &n){   return n>10}
            double other(const int &n1,const int &n2)
            {
                    if(n1

C++文件IO

 1. 相关的类
      #include 
      fstream      //跟文件的读写有关 
         ifstream  //读取文件
         ofstream //写入文件
 2. 相关的成员函数
    (1)打开文件
                    写法一:
                            ifstream   fin;
                            fin.open();  //没有新建功能,文件不存在打开就失败
                              void open (const char* filename,  ios_base::openmode mode = ios_base::in);
                                                 参数:  filename --》路径名
                                                          mode --》ios_base::in  可读
                                                                          ios_base::out  可写
                   写法二:
                           ofstream fout("1.txt");  //可以不用调用open,创建对象的同时,顺便把文件打开(清空打开)
                                                             //具备新建功能
                           或者: ofstream fout;
                                      fout.open("1.txt",ios_base::out)
     (2) 读取文件
                  写法一:
                          fin>>buf;  //读取文件内容存放到buf中,  buf要足够大,一次性把整个文件读完了
                  写法二:
                          fin.get();  //一次读取一个字节的数据
                               int get();
                               istream& get (char& c);
                               istream& get (char* s, streamsize n);
                  写法三:
                          read (char* s, streamsize n);
                          fin.read(); //读取多个字节
                  写法四:  //读取一行数据
                          istream& getline (char* s, streamsize n );  //回车作为行的结束
                          istream& getline (char* s, streamsize n, char delim );
                                       第三个参数:delim 让程序员指定新的字符作为行结束的标记
                                                          如果你没有指定,默认把回车换行作为行结束的标记
                          fin.getline();
    (3) 写入文件
                  写法一:
                          fout<linux
                  设置读的偏移  seekg()
                  设置写的偏移  seekp()
                             istream& seekg (streamoff off, ios_base::seekdir way);
                                          参数: off --》偏移多少字节
                                                     way --》从哪里开始偏移
                                                            ios_base::beg   //起始位置  SEEK_SET
                                                            ios_base::cur   //当前位置
                                                            ios_base::end //末尾位置
   (6)如何判断文件打开/新建是否成功
              方法一:is_open()
              方法二:对象判断   if(对象)
              方法三:try
                           {
                                in.open();
                           }catch(异常)
                            {

                            }

你可能感兴趣的:(C++,c++)