欢迎来到天天文库
浏览记录
ID:35199231
大小:18.39 KB
页数:4页
时间:2019-03-21
《c按格式读写文件》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、C++文件读写打开文件:voidopen(constchar*filename,intmode,intaccess);参数: filename: 要打开的文件名 mode: 要打开文件的方式 access: 打开文件的属性 打开文件的方式在类ios(是所有流式I/O类的基类)中定义,常用的值如下: ios::app: 以追加的方式打开文件 ios::ate: 文件打开后定位到文件尾,ios:app就包含有此属性 ios::binary: 以二进制方式打开文件,缺省的方式是文本方式。两种方
2、式的区别见前文 ios::in: 文件以输入方式打开(文件数据输入到内存) ios::out: 文件以输出方式打开(内存数据输出到文件) ios::nocreate:不建立文件,所以文件不存在时打开失败 ios::noreplace:不覆盖文件,所以打开文件时如果文件存在失败 ios::trunc: 如果文件存在,把文件长度设为0 可以用“或”把以上属性连接起来,如ios::out
3、ios::binary 打开文件的属性取值是:(可不设置) 0:普通文件,打开访问 1:只读文件 2:隐含文
4、件 4:系统文件可以用“或”或者“+”把以上属性连接起来,如3或1
5、2就是以只读和隐含属性打开文件。读文件:1.使用“>>”符号注意事项:1.此符号是按“行”在读取文件。在行中以“空格”为分隔读取数据。2.此符号可从“行首“提取文件行中与“>>”之后数据类型相同的数据。如文件行111sdfsaintI;ifs>>I;则I=111(10);2.ifstreamifs(“file”);stringstr,s;while(ifs>>s){str+=s;}str中的内容就是文件内容,无格式。3.charc;stringstr
6、;ifstreamifs(“file”);while(ifs.get(c)){str+=c;};str中的内容就是文件内容,有格式。4.ifstream&get(char*buf,intnum,chardelim='');ifstream&getline(char*buf,intnum,chardelim='');这种形式把字符读入由buf指向的数组,直到读入了num个字符或遇到了由delim指定的字符,如果没使用delim这个参数,将使用缺省值换行符''。例如:file2.get(str1,127,'A'
7、);//从文件中读取字符到字符串str1,当遇到字符'A'或读取了127个字符时终止。5.ifstream&read(unsignedchar*buf,intnum);从文件中读取num个字符到buf指向的缓存中,如果在还未读入num个字符时就到了文件尾,可以用成员函数intgcount();来取得实际读取的字符数。6.ifstream&getline(ifstream&ifs,stringstr,chardelim='');如果没使用delim这个参数,将使用缺省值换行符''。写文件1.“<<”以从文件尾部添
8、加的方式写文件。2.ofstream&put(charch)与get对应。3.write(constunsignedchar*buf,intnum);从buf指向的缓存写num个字符到文件中,值得注意的是缓存的类型是unsignedchar*,有时可能需要类型转换。检测是否打开1.boolis_open()检测文件是否打开检测文件尾1.inteof()到达文件尾部时返回0,否则返回大于0的整数。文件定位C++的文件定位分为读位置和写位置的定位,对应的成员函数是seekg()和seekp()。seekg()是设置读位置,
9、seekp是设置写位置。它们最通用的形式如下: istream&seekg(streamoffoffset,seek_dirorigin); ostream&seekp(streamoffoffset,seek_dirorigin); streamoff定义于iostream.h中,定义有偏移量offset所能取得的最大值,seek_dir表示移动的基准位置,是一个有以下值的枚举: ios::beg: 文件开头 ios::cur: 文件当前位置 ios::end: 文件结尾
此文档下载收益归作者所有