zoukankan      html  css  js  c++  java
  • I/O: std::ios_base::openmode

    I/O: std::ios_base::openmode

    std::ios_base::openmode

    std::ios_base::in:  打开文件进行读操作,即读取文件中的数据

    如果指定路径中没有包含该文件,不会创建,而且设置std::ios_base::badbit.

    std::ios_base::out: 打开文件进行写操作,即写入数据到文件。

    如果指定路径中并没有包含该文件,会创建一个新的.

    如果指定的路径中包含有该文件,那么打开后,会清空文件中内容,其实就是暗含了std::ios_base::truc.

    std::ios_base::in | std::ios_base::out: 打开文件进行读写操作

    如果指定的路径没有包含该文件,也不会创建,并且会设置std::ios_base::badbit.

    std::ios_base::app: 每次进行写入操作的时候都会重新定位到文件的末尾.

    如果指定路径不存在该文件那么创建一个.

    std::ios_base::ate: 打开文件之后立即定位到文件末尾

    如果指定的路径不存在该文件不会创建.

    std::ios_base::trunc: 打开文件,若文件已存在那么,清空文件内容.

    如果指定的路径不存在该文件不会创建.

    如果指定的路径含有该文件那么清空文件中的内容.

    std::ios_base::binary: 以二进制的方式对打开的文件进行读写.

    如果指定的路径不存在该文件不会创建.

    总结:

    1,凡包含std::ios_base::out mode的操作方式,如果文件不存在都是会创建.

    std::ios_base::out | std::ios_base::app/ate/trunc 这些组合的方式来操作文件,如果指定的路径该文件不存在就会创建一个空的.

    2,如果std::ios_base::in 和 std::ios_base_out同时使用就会按照 std::ios_base_in,也就是即使文件不存在也不会创建.

    3,std::ios_base::in | std::ios_base::out | std::ios_base::app/ate/trunc 这些组合的方式来操作文件, 如果指定路径的文件不存在也不会创建而且会把当前stream的state设置为std::ios_base::badbit.

    4,由于std::ios_base::out和std::ios_base::trunc单独使用的时候在打开已存在文件的情况下都会清空文件内容,因此我们使用的时候要格外注意.例如:我们可以通过std::ios_base::out | std::ios_base::app组合的形式来消除打开已存在文件时候的清空动作.

  • 相关阅读:
    图像处理、分析与机器视觉读书笔记-------第二章图像及其表达与性质
    win7下VS2015+opencv3.1.0配置
    简单使用普通用户启动tomcat
    漏洞扫描,linux配置规范处理
    linux防火墙开放和禁用指定端口
    CentOS自带定时任务crontab
    linux之dos2unix命令
    CentOS7时间设置问题
    shell去除换行和空格
    log4j日志输出级别高低
  • 原文地址:https://www.cnblogs.com/zhehan54/p/7028020.html
Copyright © 2011-2022 走看看