zoukankan      html  css  js  c++  java
  • 9、流类库与输入/输出2.4二进制输出文件

    最初设计流的目的是用于文本,因此默认的输出模式就是文本方式。在以文本模式输出时,若遇到换行符(十进制10)便自动被扩充为回车换行符(十进制13和10)。这种自动扩充有时可能出问题,请看下列程序:

    #include<fstream>
    using namespace std;
    int iarray[2] = {99,10};
    int main()
    {
     ofstream os("test.txt");
     os.write((char *)iarray,sizeof(iarray));
    }

    当执行程序,向文件中输出时,10会被自动转换成13,然后这里的转换显然不是我们需要的。要想解决这一问题,就要采用二进制模式输出。使用二进制模式输出时,其中所写的字符是不转换的,使用二进制模式输出到文件有下列方法:

    1)使用ofstream构造函数中的模式参量指定二进制输出模式,例如:

    #include<fstream>
    using namespace std;
    int iarray[2] = {99,10};
    int main()
    {
     ofstream os("test.txt",ios_base::binary);
     os.write((char *)iarray,4);//向二进制文件中写4字节数据
    }

    2)使用open函数带一个二进制模式标志打开文件,例如

    #include<fstream>
    using namespace std;
    int iarray[2] = {99,10};
    int main()
    {
     ofstream ofs;
     ofs.open("test2.txt",ios_base::binary);
     ofs.write((char *)iarray,4);//向二进制文件中写4字节数据
    }

  • 相关阅读:
    Spring5.0源码导入IDEA(一)
    适配器模式
    3.6常见查询示例
    3.5在批处理模式下使用mysql
    3.4获取有关数据库和表的信息
    3.3.4.9使用多个表
    3.3.4.8计数行
    3.3.4.7模式匹配
    3.3.4.6使用NULL值
    3.3.4.5日期计算
  • 原文地址:https://www.cnblogs.com/gary-guo/p/6336816.html
Copyright © 2011-2022 走看看