// FileCopyAnyTypeWriteRead.cpp : Defines the entry point for the console application.
//例程:用ostream类中的write函数,将某些数据内容写入到一个文件中,写入的不是字符序列,
//而是以二进制形式写入;用istream类中的read 函数,从一个文件中读取某些内容,读出的内容
//也不是二进制形式。程序如下:
#include "stdafx.h"
#include
#include
#include
struct s{
char name[30];
float pay;
};
int main(int argc, char* argv[])
{
s a;
strcpy(a.name,"ZQuan");
a.pay=50000;
ofstream out("test.txt");
if(!out){
cout<<"cannot open file.";
return 0;
}
out.write((char*)&a,sizeof(s));
out.close();
ifstream in("test.txt");
if(!in){
cout<<"cannot open file.";
return 0;
}
in.read((char*)&a,sizeof(s));
in.close();
cout< cout<
return 0;
}
///////////////////////////////////////////////////////////////////
//总结:经过本例程的学习,我有以下收获。
//1。我学会了如何将一个文件以二进制的形式输出到硬盘。
//2。我学会了如何定义一个简单的工作人员结构体。
//3。我学会了如何使用用户自定义结构体类型创建一个结构体变量。
//4。我学会了如何将一个字符串拷贝到一个结构体的字符指针成员变量指向的内存区域中去。
//5。我学会了如何使用输出文件流对象的成员函数将内存中指定大小的数据输出到文件中去的函数(参数为某内存区域的首地址,字节数)。
//6。我学会了如何将一个结构体变量的内容输出到文件(把结构体变量的指针传递给5中的成员函数)。
//7。我学会了如何将一个文件中的数据读取出来并保存到一个结构体变量中去。
//8。我学会了如何使用结构体变量将从文件中读取出来的数据打印到屏幕上去。
//9。我学会了如何调用输入文件流对象的成员函数取得上次从文件中读取出来的数据的大小(字节数)。
//10。我掌握了内存对齐的原则,即结构体变量占用的空间必须为4的整数倍(前提是结构体只有一个成员变量)。
//11。我掌握了如果结构体里只有一个成员,结构体变量占用的空间大小为成员所占的空间的大小。
//12。我掌握了如果结构体变量里有多个成员,系统会自动对结构体的大小进行调整,使得它占用的空间大小为4的整数倍。一般是在非数组或者指针的变量(一般是字符变量)后面加上0~3个字节使得结构体占用的空间为4的整数倍。
//
阅读(3086) | 评论(0) | 转发(0) |