C++——I/O流

一、流的概念

1.什么是流

  • 流是一种抽象的概念,表示数据的无结构化传递
  • C++流是指信息从外部输入设备(键盘)向计算机内部(如内存)输入和内存向外输出设备输出的过程。
  • C++有I/O标准类库,用以完成流操作功能

二、fstream的使用

1.fstream的作用

fstream是C++中常用的文件操作类

2.C++文件操作

  • 包含头文件fstream,打开命名空间std,或是std::fstream
  • 使用fstream类来实例化对象,通过对象的成员来进行文件操作

3.常用的成员函数

(1)open(“文件名路径”,打开方式)

文件路径:绝对路径或相对路径
打开方式:表示打开文件的模式,不同的模式对于不同的数据操作(只读、只写、二进制操作)

(2)close()关闭文件
(3)is_open()判断文件是否打开成功,成功返回1
(4)eof()判断文件是否到了文件末尾,到了返回true
(5)put(字符)
往文件中写入一个字符
fstream file;
file.open("1.txt",ios::out);
file.put('w');
char c='s';
file.put(c);
(6)get()
从文件中读取字符,有3中常用的形式
char ch;
file.get(ch);//读取一个字符,赋值给ch
ch=file.get();//读取一个字符,赋值给ch
get(char *str,int num,char delim='\n');//读取num个字符,赋值给str,或在这个期间读到了'\n'结束
getline(char *str,int num,char delim='\n');//读取num个字符,赋值给str,或在这个期间读到了'\n'结束
	get和getline的区别:
都可以读多个字符,get会把文件内遇到终结符留在输入流中,所以需要使用get将终结符扔掉。getline自动把输入流中的终结符取消掉了,下次可以继续直接读取。读一行字符时,一般使用getline。
(7)seekp()或seekg()
文件指针的移动
	file.seekp(5,ios::beg);//从文件开头的位置往后偏移5个字符
在这里,数字5,表示的是文件指针往后移动5个字节的位置,如果是-5那么就是往前移动5个字节的位置
第二个参数是文件指针从哪里移动位置有三个:
	ios::beg 文件开头
	ios::end 文件末尾
	ios::cur 文件指针当前的位置
(8)tellg()或tellp()
获取文件指针的移动大小,文件指针移动可以
int len=file.tellg();//获取文件指针移动了多少
(9)二进制形式读写文件

write()写入文件

writr(const char *str,int str_size);
写入一个整数 int a=10;
file.writ((const char *)&a,sizeof(int));

read()读取文件

read(char *str,int str_size);
读取一个整数 int a=;
file.read((char*)&a,sizeof(int))//读取4个字节的整数,赋值给a

三、使用重载的 << >>

1、使用运算符来进行文件操作的有点类似于I/O流中的cin和cout,只不过cin和cout是作用在内存,而fstream是作用在文件

示例:
fstream file;
int x=666;
file.open("2.txt",ios::out);
file<<"输入输出,明天头秃"<<endl;
file<<x<<endl;
//上面是写入文字和数字,有两行
file.close();
file.open("2.txt",ios::in);
char str[1024];
int temp=0;
file>>str>>temp;//从文件读取
cout<<str<<endl<<temp<<endl
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值