zoukankan      html  css  js  c++  java
  • C++二进制文件读写

    要求:

    •   用fstream类创建并打开二进制文件
    •   在文件中存入int,double 5 个基本数据类型
    •   自定义类,并在文件中存入一个类对象
    •   从文件中读取所有基本数据类型
    •   从文件中读取第3个基本类型数据
    •        从文件中读取类对象并使用
     1 #include<iomanip>
     2 #include <fstream>
     3 #include<iostream>
     4 #include<cstring>
     5 using namespace std;
     6 class Time {
     7 public:
     8     int year;
     9     int month;
    10     void Display()
    11     {
    12         cout<<year<<" "<<month;
    13     }
    14 };
    15 int main()
    16 {
    17     //用fstream创建并打开文件
    18     fstream OutFile("binaryy.dat", ios::out| ios::in| ios::binary);
    19     //写入基本数据类型
    20     int a;float b;double c;char d;bool e;
    21         a=1; b=1.34; c=1.3415826; d='p'; e=0;
    22         OutFile.write((char *)&a,sizeof(a));
    23         OutFile.write((char *)&b,sizeof(b));
    24         OutFile.write((char *)&c,sizeof(c));
    25         OutFile.write((char *)&d,sizeof(d));
    26         OutFile.write((char *)&e,sizeof(e));
    27     //写入类对象
    28         Time t;
    29         cin>>t.year>>t.month;
    30         OutFile.write((char *) &t, sizeof(t));
    31     OutFile.close();
    32     fstream inFile("binaryy.dat", ios::in | ios::binary);
    33     if (!inFile)
    34     {
    35         cout << "error" << endl;
    36         return 0;
    37     }
    38     //int a;float b;double c;char d;bool e;
    39     //读取所有基本类型
    40     inFile.read((char *)&a,sizeof(a));
    41         //cout<<a<<endl;
    42     inFile.read((char *)&b,sizeof(b));
    43         //cout<<b<<endl;
    44     inFile.read((char *)&c,sizeof(c));
    45         //cout<<c<<endl;
    46     inFile.read((char *)&d,sizeof(d));
    47         //cout<<d<<endl;
    48     inFile.read((char *)&e,sizeof(e));
    49         //cout<<e<<endl;
    50     cout<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e<<endl;
    51     //读取类对象
    52     inFile.read((char *)&t,sizeof(t));
    53         cout << t.year << " " << t.month << endl;
    54     //读取第三个基本类型
    55     double tmp;
    56     inFile.seekg(sizeof(int)+sizeof(float),ios::beg);
    57     //while(inFile.get(tmp))    cout<<tmp;
    58     inFile.read((char *)&tmp,sizeof(double));
    59     cout<<tmp<<endl;
    60     //使用类对象
    61     t.Display();
    62     inFile.close();
    63     return 0;
    64 }

    结果如下:

      

  • 相关阅读:
    [Symbian] CAknSettingItemList使用心得(转)
    Symbian自定义控件—如何实现跑马灯效果? [symbian](转)
    Retrieving currently active access point(转)
    关于接入点,cmwap,代理设置,WIFI
    Symbian之IAP(Internet Access Point)(转)
    如何使用已连接的接入点
    Symbian 内嵌SIS自启动(inline sis autostart)(转)
    Socket网络编程学习笔记(转)
    Symbian OS C++程序员编码诀窍系统资源的使用(ROM 和 RAM)(转)
    网络socket编程指南 (转)
  • 原文地址:https://www.cnblogs.com/DSYR/p/9157461.html
Copyright © 2011-2022 走看看