// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <fstream>
using namespace std;
typedef struct _my_data_type
{
int ID;
char Text[20];
}MY_DATA_TYPE, *PMY_DATA_TYPE;
void WriteBinData()
{
fstream f1("123.dat",ios::out|ios::binary|ios::app); //打开文件用于写,若文件不存在就创建它
if ( !f1 )
{
return;
}
for (int i = 0; i < 5; i++)
{
MY_DATA_TYPE myData;
myData.ID = i + 1;
sprintf_s(myData.Text, sizeof(myData.Text), "Text%02d", i + 1);
f1.write((char *)(&myData),sizeof(MY_DATA_TYPE));
}
f1.close();
}
void ReadBinData()
{
fstream f1("123.dat",ios::in|ios::binary); //打开文件用于读
if ( !f1 )
{
printf("文件【123.dat】不存在...\n");
return;
}
int iCurPos = 0;
while ( !f1.eof() )
{
//f1.seekg(iCurPos * sizeof(MY_DATA_TYPE)); 设置当前指针位置
MY_DATA_TYPE myData;
f1.read(reinterpret_cast<char *>(&myData),sizeof(MY_DATA_TYPE));
printf("ID: %02d, Text: %s\n", myData.ID, myData.Text);
f1.peek(); //指向下次读取的位置
iCurPos++;
}
f1.close();
}
int _tmain(int argc, _TCHAR* argv[])
{
WriteBinData();
ReadBinData();
system("pause");
return 0;
}
C++读写二进制文件
最新推荐文章于 2019-12-13 17:22:52 发布