1. 程式人生 > >二進位制檔案的讀寫(視訊)

二進位制檔案的讀寫(視訊)

問題及程式碼:

(1)二進位制檔案寫入

#include<iostream>
#include<fstream>
#include<cstdlib>
using namespace std;
struct student
{
    char name[5];
    int num;
    int age;
    char sex;
};
student  stud[3]=
{
    {"li",25,18,'f'},
    {"fun",32,19,'m'},
    {"wang",40,17,'f'}
};
int main()
{
    ofstream outfile("stud.dat",ios::binary);
    if(!outfile)
    {
        cerr<<"open error!"<<endl;
        exit(1);
    }
    for(int i=0;i<3;i++)
        outfile.write((char*)&stud[i],sizeof(stud[i]));
    cout<<"任務完成,請檢視檔案。"<<endl;
    outfile.close();
    return 0;
}


(2)讀出二進位制檔案

#include<iostream>
#include<fstream>
#include<cstdlib>
using namespace std;
struct student
{
    char name[5];
    int num;
    int age;
    char sex;
};
int main()
{
    student stud[3];
    int i;
    ifstream infile("stud2.dat",ios::binary);
    if(!infile)
    {
        cerr<<"open error!"<<endl;
        exit(1);
    }
    for(int i=0;i<3;i++)
        infile.read((char*)&stud[i],sizeof(stud[i]));
    infile.close();
    for(i=0;i<3;i++)
    {
        cout<<"name:"<<stud[i].name<<endl;
        cout<<"num:"<<stud[i].num<<endl;
        cout<<"age:"<<stud[i].age<<endl;
        cout<<"sex:"<<stud[i].sex<<endl;
        cout<<endl;
    }
    return 0;
}

執行結果: