C++ 介绍(十四)——IO流

Posted 叶圣陶杯编程创意大赛组委会

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ 介绍(十四)——IO流相关的知识,希望对你有一定的参考价值。

  科技·引领·实践·创新


流,一连串连续不断的数据集合。

1 流类和对象

输入流-从输入设备流向内存的流。
输出流-从内存流出设备的流。
内存缓冲区-用来存放流中的数据。
输入输出流程:键盘输入=》键盘缓冲区=(回车触发)》程序的输入缓冲区=》‘>>’提取数据
输出缓冲区=(缓冲满或endl)》‘<<’送到 显示器显示
输入/输出流类:

C++ 介绍(十四)——IO流
istream 是用于输入的流类,cin 就是该类的对象。
ostream 是用于输出的流类,cout 就是该类的对象。
ifstream 是用于从文件读取数据的类。
ofstream 是用于向文件写入数据的类。
iostream 是既能用于输入,又能用于输出的类。
fstream 是既能从文件读取数据,又能向文件写入数据的类。
istrstream 输入字符串类
ostrstream 输出字符串类
strstream 输入输出字符串流类


C++ 介绍(十四)——IO流
2 标准输入输出流
C++的输入/输出流库(iostream)中定义了4个标准流对象:cin(标准输入流-键盘),cout(标准输出流-屏幕),cerr(标准错误流-屏幕),clog(标准错误流-屏幕)。
cerr 不使用缓冲区,直接向显示器输出信息;而输出到 clog 中的信息会先被存放到缓冲区,缓冲区满或者刷新时才输出到屏幕。
cout 是 ostream 类的对象,ostream 类的无参构造函数和复制构造函数都是私有的,所以无法定义 ostream 类的对象。
使用>>提取数据时,系统会跳过空格,制表符,换行符等空白字符。所以一组变量输入值时,可用这些隔开。
输入字符串,也是跳过空白字符,会在串尾加上字符串结束标志\0。
C++ 介绍(十四)——IO流
输入流中的成员函数:
get函数:cin.get(),cin.get(ch)(成功返回非0值,否则返回0),cin.get(字符数组(或字符指针),字符个数n,终止字符)
C++ 介绍(十四)——IO流
getline函数:cin.getline(字符数组(或字符指针),字符个数n,终止标志字符)
读取字符知道终止字符或者读取n-1个字符,赋值给指定字符数组(或字符指针)
C++ 介绍(十四)——IO流
cin.peek() 不会跳过输入流中的空格、回车符。在输入流已经结束的情况下,cin.peek() 返回 EOF。
ignore(int n =1, int delim = EOF)
C++ 介绍(十四)——IO流
putback(char c),可以将一个字符插入输入流的最前面。
输出流对象:
插入endl-输出所有数据,插入换行符,清空缓冲区
\n-输出换行,不清空缓冲区
cout.put(参数) 输出单个字符(可以时字符也可以是ASII码)
格式化输出:
iomanip 中定义的流操作算子:
*不是算子的一部分,星号表示在没有使用任何算子的情况下,就等效于使用了该算子,例如,在默认情况下,整数是用十进制形式输出的,等效于使用了 dec 算子
C++ 介绍(十四)——IO流
流操作算子使用方法:cout << hex << 12 << "," << 24;//c,18
setiosflags() 算子:
setiosflags() 算子实际上是一个库函数,它以一些标志作为参数,这些标志可以是在 iostream 头文件中定义的以下几种取值,它们的含义和同名算子一样。
C++ 介绍(十四)——IO流
ostream 类中的成员函数:
C++ 介绍(十四)——IO流
setf 和 unsetf 函数用到的flag,与 setiosflags 和 resetiosflags 用到的完全相同。


科技·引领·实践·创新

以上是关于C++ 介绍(十四)——IO流的主要内容,如果未能解决你的问题,请参考以下文章

大数据必学Java基础(七十四):对象流ObjectInputStream和ObjectOutputStream介绍

C++的IO流

C++的IO流

[C/C++]C++的IO流

[C/C++]C++的IO流

C++从入门到入土第十四篇:list的介绍与使用