您的位置:首页 > 编程语言 > C语言/C++

【C语言提高49】按照块读写文件

2016-01-10 13:04 549 查看

块方式: 直接把内存数据 写入到文件中

typedef struct Teacher
{
char name[64];
int age;
}Teacher;


读:
void main_fread()
{
int i = 0;
int myN;
FILE*fp = NULL;
char*fileName = "D:/3.data";
Teacher tArray[3];

fp = fopen(fileName, "wb");
if (fp == NULL)
{
printf("建立文件失败");
return;
}

for (i = 0;i < 3;i++)
{
myN = fread(&tArray[i], sizeof(Teacher), 1, fp);
}

for (i = 0;i < 3;i++)
{
printf("Name:%s,age:%d",tArray[i].name,tArray[i].age);
}

if (fp != NULL)
{
fclose(fp);
}
}


写:
void main_fwrite()
{
int i = 0;
int myN;
FILE*fp = NULL;
char*fileName = "D:/3.data";
Teacher tArray[3];
for (i = 0;i < 3;i++)
{
sprintf(tArray[i].name,"%d%d%d",i+1,i+1,i+1);
tArray[i].age = i + 31;
}

fp = fopen(fileName,"rb");
if (fp == NULL)
{
printf("建立文件失败");
return;
}

//内存打包技术
/*_ACRTIMP size_t __cdecl     //返回值  返回写的次数
fwrite(
_In_reads_bytes_(_ElementSize * _ElementCount) void const* _Buffer,         //从内存块开始
_In_                                           size_t      _ElementSize,    //从这个内存块开始 写多长
_In_                                           size_t      _ElementCount,   //写多少次
_Inout_                                        FILE*       _Stream          //写入到文件指针所指向的文件中
);
*/
for (i = 0;i < 3;i++)
{
myN=fwrite(&tArray[i], sizeof(Teacher), 1, fp);

//myN  判断 有没有写满 磁盘
}

for (i = 0;i < 3;i++)
{
sprintf(tArray[i].name, "%d%d%d", i + 1, i + 1, i + 1);
tArray[i].age = i + 31;
}

if (!fp == NULL)
{
fclose(fp);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: