c++文件

c++文件,第1张

总结一下文件,顺便复习
文件两大类:文本文件(字符)和二进制文件(保留数据类型)
一、文本文件
打开方式:
只读:file.open(“文件名.格式”,ios::in)
只写:file.open(“文件名.格式”,ios::out)
//这两种每次打开均会刷新文件
可读可写:file.open(“文件名.格式”,ios::in|ios::out)
追加:file.open(“文件名.格式”,ios::app)//这两种不会刷新文件内容
//上述四种如果文件不存在,会创建一个新文件。
测试文件是否打开成功:
if(!file)
{
class="superseo">cout<<“打开文件失败”;
exit(0);
}
或者
if(file.fail())
{
cout<<“打开文件失败!”;
exit(0);
}
读文件:
1.采用>>读文件
格式:file>>name(暂时的数组);
作用:不能读取空格,换行,跳格,只能读取一个非空白字符串,即遇到这三个会停止本次读取进入下一次
缺点:读取出来的数据与文件中的排版不符
2.采用file.getline(buffer,[size]);
作用 :一次读取一行,包括空白字符,遇到换行停止
3.get读文件
格式:file.get(ch)
作用:一次读取一个字符,任意字符
注意:每次读完之后,文件指针都会自动往后跳一个,准备读取下一个!!!,指针在字符左边即准备读取该字符
写文件
1.采用<<写文件
格式:file< 2.put写文件
格式:file.put(ch);
作用:写入一个一个字符
二、二进制文件
打开方式:
只读:file.open(“文件名.格式”,ios::in|ios::binary)
只写:file.open(“文件名.格式”,ios::out|ios ::binary)
追加:file.open(“文件名.格式”,ios::app|ios::binary)
测试是否相同与文本文件相同,经常与结构体或类结合使用,整块的读写数据并且保持数据类型不变
写文件:
file.write((char*)buffer,sizeof(buffer));

b是对象或结构体变量
file.write((char*)&b,sizeof(b));
读文件
file.read((char*)buffer,sizeof(buffer));
同上
三,随机访问文件
ios::beg -----从文件开始计算偏移量
ios::cur-----从当前位置开始计算偏移量
ios::end----从文件尾开始计算偏移量
举例:
读指针
file.seekg(3,ios::beg);
表示将读指针从开始向后移动三位,小于零向后移动,等于零不移动,cur,end类似
写指针
file.seekp(3,ios::beg);第一个位置可以用sizeof计算某个类或结构体的大小再乘以一个长整形数据表示移动了几块数据。方便查询
!!为了避免读取文件最后一行出现重复读取的情况,一般在循环之前先读取一次
如有写的不对的地方,还请指出来。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/990239.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存