C/C++ fwrite fread 函数使用
#include <iostream>
#include <fstream>
#include <cstring>
#include "fileTest.h"
using namespace std;
struct RgbaHeader{
int width = 0;
int height = 0;
int size = 0;
};
struct RgbaData{
uint32_t rgbSize = 0;
uint32_t alphaSize = 0;
unsigned char rgb[8];
unsigned char alpha[4];
};
int writeFile(){
RgbaData rgbaData;
rgbaData.rgbSize = 16;
rgbaData.alphaSize = 4;
strcpy(reinterpret_cast<char *>(rgbaData.rgb), "abc");
strcpy(reinterpret_cast<char *>(rgbaData.alpha), "dd");
RgbaData * p_rgbaData = &rgbaData;
FILE *fp;
if((fp = fopen("../cfileTest.txt", "wb")) == NULL){
cout << "can't open this file!" << endl;
}
if(fwrite(p_rgbaData, sizeof(RgbaData), 1, fp) != 1){
cout << "file write error!" << endl;
}
fclose(fp);
return 0;
}
int readFile(){
RgbaData * rgbaData = new RgbaData;
FILE *fp;
if((fp = fopen("../cfileTest.txt", "r")) == NULL){
cout << "can't open this file!" << endl;
}
if(fread(rgbaData, sizeof(RgbaData), 1, fp) != 1){
cout << "file write error!" << endl;
}
cout << rgbaData->rgbSize << endl;
return 0;
}
int main(){
cout << "fileTest..." << endl;
//writeFile();
readFile();
return 0;
}