zoukankan      html  css  js  c++  java
  • C中的文件操作函数[笔记]

    头件 : #include<stdio.h>

    两个必须函数: 

    FILE * fopen(const char * path,const char * mode); //path:文件路径  mode: {r,w,a,b+}组合, 具体功能另记

    int fclose(FILE * stream);

    size_t fread(void * ptr,size_t size,size_t nmemb,FILE * stream);       //从文件流读取数据

    size_t fwrite(const void * ptr,size_t size,size_t nmemb,FILE * stream);  //将数据写至文件流

    其实fread, 和fwrite都会修改文件流的当前位置的, 但如果重新就用到下面的函数

    //移动文件流的读写位置    whence={SEEK_SET(从头算offset),  SEEK_CUR(从当前算offset) ,  SEEK_END(从尾算offset)}

    int fseek(FILE * stream,long offset,int whence);

    void rewind(FILE * stream);    //重设文件流的读写位置为文件开头

    暂时只记录要用到的!! 

    例程:

    #include <math.h>
    #include <stdio.h>
    #include <WINDOWS.H>
    #include <IOSTREAM>
    using namespace std;
    
    int main(int argc, char* argv[])
    {
    	FILE* file = fopen("1.bmp", "rb");
    
    	BITMAPFILEHEADER fheader = {0};
    	fread((void*)&fheader, sizeof(BITMAPFILEHEADER), 1, file);
    	cout << ftell(file) << endl;
    
    	BITMAPINFOHEADER info_header = {0};
    	fread((void*)&info_header, sizeof(BITMAPINFOHEADER), 1, file);
    	
    	cout << ftell(file) << endl;
    
    	int num = pow(2, info_header.biBitCount);
    
    	RGBQUAD* rgbs = new RGBQUAD[num];
    	fread((void*)rgbs, sizeof(RGBQUAD), 16, file);
    	cout << ftell(file) << endl;
    
    
    	fclose(file);
    	return 0;
    }
    

      

    例程是一个读取位图文件头信息的Demo!!

  • 相关阅读:
    蛇形填数
    A Famous Music Composer
    Java用筛子法求素数
    素数求和问题
    Java中数组的快排
    大数阶乘
    Binary String Matching
    括号配对问题
    Android Studio安装和使用
    Android Studio使用手册
  • 原文地址:https://www.cnblogs.com/dilex/p/4709570.html
Copyright © 2011-2022 走看看