• CC++ 文件操作


    在编程的过程中,文件的操作是一个经常用到的问题,在C++Builder中,可以使用多种方法对文件操作:
       1、基于C++的文件操作;
       2、基于C的文件操作;

    于C++的文件操作

      在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O。stream这个类有两个重要的运算符:

     (1)插入器(<<):向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout<<"WriteStdout"<<'' ''; 就表示把字符串"WriteStdout"和换行字符('' '')输出到标准输出流。

     (2)析取器(>>):从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,所以,cin>>x; 就表示从标准输入流中读取一个指定类型(即变量x的类型)的数据。
      在C++中,对文件的操作是通过stream的子类fstream(file stream)来实现的,所以,要用这种方式操作文件,就必须加入头文件fstream.h。下面就把此类的文件操作过程一一道来。
    一、打开文件

      在fstream类中,有一个成员函数open(),就是用来打开文件的,其原型是:void open(const char* filename, int mode, int access);

      参数: filename:  要打开的文件名      

         mode:   要打开文件的方式      

         access:   打开文件的属性    

      打开文件的方式在类ios(是所有流式I/O类的基类)中定义,常用的值如下:      

        ios::app:   以追加的方式打开文件      

        ios::ate:   文件打开后定位到文件尾,ios:app就包含有此属性      

        ios::binary: 以二进制方式打开文件,缺省的方式是文本方式。

        ios::in:    文件以输入方式打开      

        ios::out:   文件以输出方式打开      

        ios::nocreate:不建立文件,所以文件不存在时打开失败       

        ios::noreplace:不覆盖文件,所以打开文件时如果文件存在失败      

        ios::trunc:  如果文件存在,把文件长度设为0      可以用“或”把以上属性连接起来,如          

        ios::out|ios::binary     

      打开文件的属性取值是:          

        0:普通文件,打开访问          

        1:只读文件          

        2:隐含文件          

        4:系统文件      

      可以用“或”或者“+”把以上属性连接起来 ,如3或1|2就是以只读和隐含属性打开文件。      

      例如:以二进制输入方式打开文件config.conf      

        fstream file1;      

        file1.open("config.conf",ios::binary|ios::in,0);     

      如果open函数只有文件名一个参数,则是以读/写普通文件打开,即:    

        file1.open("config.conf");<=> file1.open("config.conf",ios::in|ios::out,0);     

      另外,fstream还有和open()一样的构造函数,对于上例,在定义的时侯就可以打开文件了:    

        fstreamfile1("config.conf");    

      特别提出的是,fstream有两个子类:ifstream(input file stream)和ofstream(outpu filestream)       

        ifstreamfile2("pdos.def");  //以输入方式打开文件       

        ofstreamfile3("x.123");  //以输出方式打开文件        

      ifstream默认以输入方式io::in打开文件,而ofstream默认以输出io::out方式打开文件。    

        注:file2.good() 判断对象可不可用。正常返回0,否则返回非0.    

      所以,在实际应用中,根据需要的不同,选择不同的类来定义:      

        如果想以输入方式打开,就用ifstream来定义;输入文件流      

        如果想以输出方式打开,就用ofstream来定义;输出文件流      

        如果想以输入/输出方式来打开,就用fstream来定义。

    二、关闭文件
        打开的文件使用完成后一定要关闭,fstream提供了成员函数close()来完成此操作,如:file1.close();就把file1相连的文件关闭。

    三、读写文件

  • 相关阅读:
    Laravel 初始化
    ant design pro 左上角 logo 修改
    请求到服务端后是怎么处理的
    Websocket 知识点
    王道数据结构 (7) KMP 算法
    王道数据结构 (6) 简单的模式匹配算法
    王道数据结构 (4) 单链表 删除节点
    王道数据结构 (3) 单链表 插入节点
    王道数据结构 (2) 单链表 尾插法
    王道数据结构 (1) 单链表 头插法
  • 原文地址:https://www.cnblogs.com/xlpsky/p/6133208.html
Copyright © 2020-2023  润新知