zoukankan      html  css  js  c++  java
  • c++ 以二进制方式读取文件

    转载:https://www.jb51.net/article/147896.htm

    实际上就是以二进制形式打开文件,将数据保存到内存,在以二进制形式输出到指定文件。因此对于有图片的文件,也可以用这种方法复制其内容

     1 #include<iostream>
     2 
     3 using namespace std;
     4 
     5 void main(void)
     6 {
     7     //保存输入图像文件名和输出图像文件名
     8     char InImgName[10];
     9     char OutImgName[10];
    10     //图像数据长度
    11     int length;
    12     //文件指针
    13     FILE* fp;
    14     //输入要读取的图像名
    15     cout << "Enter Image name:";
    16     cin >> InImgName;
    17     //以二进制方式打开图像
    18     if ((fp = fopen(InImgName, "rb")) == NULL)
    19     {
    20 
    21         cout << "Open image failed!" << endl;
    22         exit(0);
    23     }
    24     //获取图像数据总长度
    25     fseek(fp, 0, SEEK_END);
    26     length = ftell(fp);
    27     rewind(fp);
    28     //根据图像数据长度分配内存buffer
    29     char* ImgBuffer = (char*)malloc(length* sizeof(char));
    30     //将图像数据读入buffer
    31     fread(ImgBuffer, length, 1, fp);
    32     fclose(fp);
    33     //输入要保存的文件名
    34     cout << "Enter the name you wanna to save:";
    35     cin >> OutImgName;
    36     //以二进制写入方式
    37     if ((fp = fopen(OutImgName, "wb")) == NULL)
    38     {
    39         cout << "Open File failed!" << endl;
    40         exit(0);
    41     }
    42     //从buffer中写数据到fp指向的文件中
    43     fwrite(ImgBuffer, length, 1, fp);
    44     cout << "Done!" << endl;
    45     //关闭文件指针,释放buffer内存
    46     fclose(fp);
    47     free(ImgBuffer);
    48 }
  • 相关阅读:
    <转>CSS3 Media Queries 实现响应式设计
    css3的display:box研究
    CSS3制作渐变文字
    (转)apple-touch-icon-precomposed 和 apple-touch-icon属性区别
    (转)移动平台的meta标签
    day 57 jQuery插件
    day56 文件 文档处理,事件
    day 55 jQuery-part2
    day 54 jQuery, part-1
    day 52 dom 事件
  • 原文地址:https://www.cnblogs.com/Toya/p/11405348.html
Copyright © 2011-2022 走看看