c++ 读写二进制文件

学内容: 

打开二进制文件

写二进制文件

读二进制文件

 

 

一、打开二进制文件

    FILE *fopen( const char *filename, const char *mode );

    filename是要操作的文件名。 

mode

说明

"wb"

打开一个二进制文件,进行写入操作。如果文件不存在,则会建立一个新文件存在则清空内容。

"ab"

打开一个二进制文件,进行追加操作。如果文件不存在,则会建立一个新文件存在则追加内容。

"rb"

打开一个二进制文件,进行读取操作。

 

二、写二进制文件

   size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream );

//count*size 是要写入文件的字节数

 buffer是缓冲区指针

 stream是文件指针(或者流指针)

三、读二进制文件

   size_t fread( void *buffer, size_t size, size_t count, FILE *stream );

//count*size 是要读取的字节数

buffer是缓冲区指针

stream是文件指针(或者流指针)

int main(void)
{   
    //未重定向的代码
    char num[256];
    FILE *f;
    stu_data stu10[10]={0};
    int i;
    time_t t1;
    struct tm * tm1;
    f=fopen("test.txt","rb");
     //fprintf(f,"ddddd");
     if (f==NULL) //if (!f)
     {
         //fprintf(stderr,"文件打开出错或者是文件不存在 
");//stdout
         perror("test.txt");
     }
     ////获取数据并写入文件
     //for (i=0;i<10;i++)
     //{
        // scanf("%s",&stu10[i].name );
        // time(&t1);
        // tm1=localtime(&t1);
        // //记录签到时间//记录学生 姓名和签到时间
        // stu10[i].stuTime.hour=tm1->tm_hour;
        //  stu10[i].stuTime.min=tm1->tm_min;
        //   stu10[i].stuTime.sec=tm1->tm_sec;
     //}
     ////写入到二进制文件里
     //fwrite(stu10,sizeof(stu_data),10,f);
     //读取二进制文件数据至stu10缓冲区
     fread(stu10,sizeof(stu_data),10,f);
     //显示数据
     for (i=0;i<10;i++)
     {
         printf("name=%s  ",stu10[i].name);
         printf("时间:%d-%d-%d 
",stu10[i].stuTime.hour,stu10[i].stuTime.min,stu10[i].stuTime.sec);
     }
     fclose(f);
    getchar();
    getchar();
    return 0;
}
原文地址:https://www.cnblogs.com/whzym111/p/6149894.html