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字节数据
    }

  • 相关阅读:
    题解 CF1304E 【1-Trees and Queries】
    题解 P4302 【[SCOI2003]字符串折叠】
    题解 P2070 【刷墙】
    题解 P1278 【单词游戏】
    题解 P1985 【[USACO07OPEN]翻转棋】
    题解 P2642 【双子序列最大和】
    Python面向对象之反射
    Python面向对象之进阶
    Python面向对象之多态、封装
    Python面向对象之继承
  • 原文地址:https://www.cnblogs.com/gary-guo/p/6336816.html
Copyright © 2011-2022 走看看