文本文件/ASCII文件(能直接显示内容,费存储空间):文件中每一个字节中均以ASCII代码形式存放数据,即一个字节存放一个字符,这个文件就是ASCII文件或称字符文件。

二进制文件(不能显示内容,节省存储空间) :将内存中的数据存储形式不加转换的传送到磁盘文件,内存数据的映像文件,因为文件中的信息不是字符数据,而是字节中的二进制形式信息。

两者操作都需要先打开文件,用完关闭文件。在打开时用ios::binary指定为以二进制形式传送和存储。

二进制文件除了可以作为输入文件或者输出文件外,还可以既能输入又能输出的文件,这是和ASCII文件不同的地方、
简单来说,文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码。

从上面可以看出文本文件基本上是定长编码的(也有非定长的编码如UTF-8)。而二进制文件可看成是变长编码的,因为是值编码嘛,多少个比特代表一个值,完全由你决定。大家可能对BMP文件比较熟悉,就拿它举例子吧,其头部是较为固定长度的文件头信息,前2字节用来记录文件为BMP格式,接下来的8个字节用来记录文件长度,再接下来的4字节用来记录bmp文件头的长度,bmp就是一个自定义的二进制文件,只是格式固定了。一般自己定义的二进制文件需要按自定义格式来识别内容。

二.iostream类:C++用于输入输出的类库。

在C++中,输入输出流被定义为类,C++的I/O库中的类称为流类,用流类定义的对象称为流对象。

流中的内容可以是ASCII字符,二进制形式的数据,图形图像,数字音频视频或其他形式的信息。

I/O类库中常用流类

类名                  作用                                        在哪个头文件中声明

ios               抽象基类                                         iostream

istream        通用输入流和其他输入流的基类             iostream

ostream       通用输出流和其他输出流的基类             iostream

iostrean       通用输入输出流和人其他输入输出流的基类 iostream

ifstream       输入文件流类                                    fstream

ofstream      输出文件流类                                    fstream

fstream        输入输出文件流类                              fstream

istrstream    输入字符串流类                                 strstream

......................................

2 有关头文件

iostream 包含对输入输出流进行操作所需的基本信息

fstream 用于用户管理的文件的i/o操作

strstream 用于字符串流的i/o

stdiostream 用于混合使用C和C++的I/O机制时,例如想将C程序转变为C++程序

iomanip 在使用格式化I/O时应包含此头文件

iostream头文件中定义的类有ios,istream,ostream,iostream等

iostream 包含了对输入输出的进行的基本操作所需信息,因此大多数C++程序都包括iostream

iostream 中还定义了4中流对象 cin(键盘),cout(屏幕),cerr(屏幕),clog(屏幕) 定义形式:ostream cout(stdout)

3 iostream头文件中重载运算符

在istream 和ostream类中分别对>>和<<进行了重载,以便于能用它输入输出各种标准数据类型的数据:

ostream operator <<(int); //用于向输出流插入一个int数据

ostream operator <<(flaot); //用于向输出流插入一个float数据

ostream operator <<(char); //用于向输出流插入一个char数据

ostream operator <<(char *); //用于向输出流插入一个字符串数据

注意 自定义类型重载>> <<,在类内声明为友元函数重载。

4 cout.put('a');流成员函数put输出字符

5 cin是iostream类的对象,它从标准输入设备(键盘)获取数据,程序中的变量通过流提取符>>从流中提取数据。流提取符>>从流中提取数据时通常跳过输入流中的空格 tab键 换行符等空白字符。注意:只有在输入完数据再按回车键后,改行数据才被送入键盘缓冲区,形成输入流,提取运算法>>才能从中提取数据。

ch=cin.get();读入一个字符

cin.get(ch);

cin.get(字符指针/数组,字符个数n,终止字符)

cin.getline(字符指针/数组,字符个数n,终止字符) 两个区别:cin.get函数从输入流读字符时,遇到终止字符时停止读取,指针不向后移动,仍然停在终止符之前的位置,在下一次读取时从终止符开始。后者会跳过终止符。

前者得借助ignore函数跳过终止符,

6 cin.eof(),cin.peek(),cin.outback(),cin,ignore(n,终止字符)

7.

C++ 输入输出流 文本文件 二进制文件读写相关推荐

  1. Java之输入输出流(文件的读写)

    Java之输入输出流(文件的读写) 首先,在编程的世界,流明显显得很重要.C++的输入输出流,Java的输入输出流等等. 首先我们得学会如何使用Java的输入输出流.首先,它们被封装在Java的一个叫 ...

  2. java文件流写入文件_JAVA 输入输出流 本地文件读写

    今天学了一下Java的文件的读写. 流名为什么名字都这么长???? 这让我咋么记? 今天我想实现的功能是基本的文件操作,从输入in文件里读取数据,然后程序处理之后输出到out输出文件中,以助于ACM中 ...

  3. Java常用工具类之异常、包装类、字符串处理类、集合框架实现类、输入输出流、多线程

    集合.多线程和I/O流等 介绍6种常用工具类: 1.如何应用异常处理程序中的问题?2.如何通过包装器类实现基本数据类型的对象化处理?3.字符串处理类String.StringBuilder是如何进行字 ...

  4. java写入dat文件_dat格式用什么播放器 如何在JAVA中进行文件的读写 I/O 输入输出流...

    3.RandomAccessFile的使用 4.I/O 输入输出流 1.创建File对象:File file=new File(String path);注意:File.seperater();获取系 ...

  5. java 字符流read函数,JAVA中文件的读写 I/O 输入输出流

    主要内容 1.编码问题 2.File类的使用 3.RandomAccessFile的使用 4.I/O 输入输出流 编码问题: 1 importjava.io.UnsupportedEncodingEx ...

  6. java 对象读写_java 对象输入输出流读写文件的操作实例

    java 对象输入输出流读写文件的操作实例 java 支持对对象的读写操作,所操作的对象必须实现Serializable接口. 实例代码: package vo; import java.io.Ser ...

  7. C++文本文件操作和二进制文件读写

    文本文件操作: 代码如下: #include <iostream> #include <fstream> using namespace std;void test01() { ...

  8. 利用输入输出流及文件类编写一个程序,可以实现在屏幕显示文本文件的功能,类似DOS命令中的type命令

    利用输入输出流及文件类编写一个程序,可以实现在屏幕显示文本文件的功能,类似DOS命令中的type命令 package p1;import java.io.BufferedReader; import ...

  9. java实验七输入输出流_实验六_Java的输入输出流

    JAVA的输入输出流 实验六 Java的输入输出流 实验目的 1. 理解I/O流的概念,掌握其分类 2. 掌握文本文件读写.二进制文件读写 实验环境 JDK1.4以上版本, Eclipse集成开发环境 ...

最新文章

  1. 2018年全国多校算法寒假训练营练习比赛(第五场)题解
  2. C#正则表达式引发的CPU跑高问题以及解决方法
  3. php把表情去掉,php如何去除表情
  4. WebX.0:Web1.0
  5. 如何汉化美化Citrix的WEB界面
  6. Boost.MultiIndex 使用 Boost.Interprocess 分配器的示例
  7. 深度学习论文翻译--Deep Residual Learning for Image Recognition
  8. 熟知的CRM有哪些功能特点?
  9. 权值线段树小结(hdu多校,普通平衡树,郁闷的出纳员)
  10. P4173-残缺的字符串【FFT】
  11. 软件测试用例项目写作,通用测试用例写作方法
  12. 数字图像处理的起源与应用
  13. JS前端生成二维码的几种方式
  14. 制定可用性测试计划(1)
  15. veil-Evasion免杀使用
  16. 佳博80250打印机怎么看打印机IP
  17. CUDA编程——GPU架构,由sp,sm,thread,block,grid,warp说起
  18. Mac M1芯片同态加密库的安装(TFHE问题)
  19. OpenCV + CPP 系列(卅三)图像特征提取(Harris角点检测、Shi-Tomasi角点检测、自定义角点检测)
  20. 实战电商后端系统(三)—— 以vue-element-admin为基础的前端项目对接后端接口

热门文章

  1. 先本地仓库中国添加jar包
  2. pycharm与python环境配置
  3. 【BZOJ3555】[Ctsc2014]企鹅QQ hash
  4. Working with multiple environments
  5. CF#190DIV.1
  6. 羊皮卷的故事-第二章
  7. VML编程之------VML语言入门《VML极道教程》原著:沐缘华
  8. java tabpanel_java cs tab点击切换标签的实现 panel
  9. mybatis mapper配置 bigint_SpringBoot基础架构1(SpringBoot、MyBatis-Plus与Thymeleaf)
  10. python解析xml文件选用模块_python-minidom模块【解析xml】