帮我解释一下这几句,具体点,谢谢!

来源:百度知道 编辑:UC知道 时间:2024/05/15 19:59:52
ifstream ifile("order.dat",ios_base::in);
ifile.seekg((m-1)*84);
后面这句我没见过,会不会像if循环一下,将order.dat辊的东西都输出。
仔细说说这句ifile.seekg((m-1)*84);
哦,对了,其中相关的一个结构体定义为:
struct passenger_data//84字节
{
int order_id; //订单编号
char passenger_name[20]; //姓名
char passenger_id[20]; //证件号
int book_amount; //订票数
char flight_id[14];
char s_point[10]; //起点
char e_point[10]; //终点
};
顺便说说为什么是84字节,谢谢!

ifstream是从硬盘到内 同时还有
ofstream是从内存到硬盘

参数:

filename: 要打开的文件名
mode: 要打开文件的方式
access: 打开文件的属性
打开文件的方式在类ios(是所有流式I/O类的基类)中定义,常用的值如下:

ios::app: 以追加的方式打开文件
ios::ate: 文件打开后定位到文件尾,ios:app就包含有此属性
ios::binary: 以二进制方式打开文件,缺省的方式是文本方式。两种方式的区别见前文
ios::in: 文件以输入方式打开(文件数据输入到内存)
ios::out: 文件以输出方式打开(内存数据输出到文件)
ios::nocreate: 不建立文件,所以文件不存在时打开失败
ios::noreplace:不覆盖文件,所以打开文件时如果文件存在失败
ios::trunc: 如果文件存在,把文件长度设为0
可以用“或”把以上属性连接起来,如ios::out|ios::binary

打开文件的属性取值是:

0:普通文件,打开访问
1:只读文件
2:隐含文件
4:系统文件