C++的IO流(文件读写流,字符串流)

本文介绍了C++中的IO流操作,包括文件读写流和字符串流。详细讲解了fstream库的使用,如ifstream、ofstream和fstream类,以及文件打开模式、文本与二进制模式的区别。此外,还提到了被弃用的<strstream>库和推荐使用的<sstream>库,用于字符串流的读写操作。
摘要由CSDN通过智能技术生成

一、简介

C++中的IO操作被包装成类,它们的继承关系如下。在这里插入图片描述

二、C++文件IO

C++的文件IO依赖<fstream>库,包含三个类:ifstream(从文件中读)、ofstream(向文件中写)、fstream(对文件读写)。
我们只讲fstream的使用,另外两种相比而言知识功能受限,操作方法相同。
1.创建文件流对象,有两种方式。
a.
fstream iofile(char *filename,mode=default,filetype=default);//default表示参数使用默认值
b.
fstream iofile;
iofile.open(char *filename,mode=default,filetype=default);
2.文件打开模式

  • ios::in 读取,文件不存在,失败。
  • ios::out 写入,文件不存在,创建。
  • ios::ate 文件指针移动到文件末尾
  • ios::app 追加模式,文件不存在,创建
  • ios::trunc 清空文件
  • ios::binary 二进制形式打开
    以上模式都可以可以使用 | 运算符连接使用,但是注意,in,out,app可以单独使用,其余只能和它们三个中至少一个连用(trunc必须和ios::out连用)。app和任意模式连用都是文件不存在就创建,但ios::in|ios::out连用文件不存在打开失败。

3.文本模式和二进制模式
文本模式下使用析取器>>和插入器<<进行读写操作,遇到空格或换行符停止本次读写操作。由于插入器<<进行写操作时,会将数据转换为字符串再写入,所以使用析取器读取时只能写入字符数组或字符串,不能直接写入其他数据类型(可以考虑进行数据类型转换)。
二进制模式下使用get(),put(),read(),wtite()进行读写,本人常用read()和write()。

4.文件类型
0:普通文件
1:只读文件
2:隐藏文件
3:系统文件
不用管这个参数,使用默认值即可,目前没用到过。

/*
@author:liangzai
@date:2020.10.27
*/

#include <iostream>
#include<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值