C++文件操作详解注意事项(一)

目录

总叙

文件的打开和关闭

文件的打开

实例

文件的打开方式

文件的关闭

有关注意事项


总叙

区别于普通的未使用文件操作的C++程序,使用文件操作可以使你的运行数据永久保存。不会随着程序的结束而运行数据消失。

        c++语言将文件以字节流的形式进行识别。

        文件有两种类型,文本文件和ASCII码文件。

        存取文件也有两种,一种是顺序存储文件,另一种是随机存取文件。

再来浅谈一下如何进行数据的传输:使用ifstream和ofstream,fstream类。

文件的打开和关闭

在编写程序时,主要遵循的流程如下

打开文件->读写文件->关闭文件

遵循着这样的整体流程,就可以将所有的文件操作抽象出来,方便理解和操作。

文件的打开

1、建立流对象调用open函数从而连接外部文件

//流类 对象名;
//对象名.open(文件名,方式);

2、调用定义的流类的带参数的构造函数,在建立流对象的同时连接外部文件

//流类 对象名(文件名,方式);

其中的流类指的是文件流,即ifstream,ofstream,fstream类

(注意:在使用流类时,一定不要忘记加上头文件<fstream>)

ifstream                以只读方式打开文件
ofstream以写的方式打开文件
fstream以读、写的方式打开文件

实例

举个简单例子:

打开一个文件,准备读:

ifstream s;
s.open("文件名",ios::in);    
//此处的ios::in会在后面进行解释说明,这里只需知道是关于表示一种打开文件的方式

打开一个文件,准备写:

ofstream a;
a.open("文件名",ios::out);//ios::out指的是以写的方式打开文件

文件的打开方式

标识常量意义
ios::in0x0001读方式打开文件
ios::out0x0002写方式打开文件
ios::ate

0x0004

打开文件时,文件指针指向文件末尾
ios::app0x0008追加方式,将向文件中输出的内容追加到文件尾部
ios::trunc0x0010删除现有文件内容,ios::out的默认操作
ios::nocreate0x0020若文件不存在,则打开文件失败
ios::noreplace0x0040若文件存在,则打开文件失败
ios::binary0x0080以二进制打开文件,默认文本方式

有关注意事项:

        1、假如只存在ios::out,那么每次将内容写入后,再次打开时,上次输入的内容会被清空。

        2、假如既存在ios::out又存在ios::in那么每次内容写完后,再次运行时,上次的结果仍然会被保留。

         3、假如写入了ios::app,那么他的优先级会高于上述的两个优先级的和,一切会优先考虑ios::app

        4、假如没有生成笔记本,那么会自动生成一个笔记本记录数据。

例如:

#include<iostream>
#include<fstream>
using namespace std;
int main()
{
fstream a;
a.open("123.txt",ios::out);
if (a.is_open())
	cout<<"文件已被打开,准备写入" ; 
a<<"我要上研究生,我一定要上研究生!!!"<<endl;
a.close();
return 0;
}

文件的关闭

缓冲区数据传入文件中,添加文件结束符,切断流对象和外部文件之间的连接通路。

此处要使用的函数是fstream中的close函数

ifstream a;
a.open("aas.txt",ios::in);//读文件
a.close();//关闭aas.text
a.open("aas2.txt",ios::in);//重新启用流对象

关闭一个对象后,假如流对象的生存周期还未结束,那么流对象仍然存在,可以与之连接,可以重新使用该流对象打开其他文件。

当流对象的生存周期结束后,系统会自动关闭文件。

有关注意事项

c++读出来的的字节是按照字符指针来进行操作的。

不要忘记加上头文件<fstream>

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牛哥带你学代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值