C++ 介绍(十四)——IO流
Posted 叶圣陶杯编程创意大赛组委会
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ 介绍(十四)——IO流相关的知识,希望对你有一定的参考价值。
科技·引领·实践·创新
1 流类和对象
输入输出流程:键盘输入=》键盘缓冲区=(回车触发)》程序的输入缓冲区=》‘>>’提取数据
输出缓冲区=(缓冲满或endl)》‘<<’送到 显示器显示
istream 是用于输入的流类,cin 就是该类的对象。
ostream 是用于输出的流类,cout 就是该类的对象。
iostream 是既能用于输入,又能用于输出的类。
fstream 是既能从文件读取数据,又能向文件写入数据的类。
C++的输入/输出流库(iostream)中定义了4个标准流对象:cin(标准输入流-键盘),cout(标准输出流-屏幕),cerr(标准错误流-屏幕),clog(标准错误流-屏幕)。
cerr 不使用缓冲区,直接向显示器输出信息;而输出到 clog 中的信息会先被存放到缓冲区,缓冲区满或者刷新时才输出到屏幕。
cout 是 ostream 类的对象,ostream 类的无参构造函数和复制构造函数都是私有的,所以无法定义 ostream 类的对象。
使用>>提取数据时,系统会跳过空格,制表符,换行符等空白字符。所以一组变量输入值时,可用这些隔开。
输入字符串,也是跳过空白字符,会在串尾加上字符串结束标志\0。
get函数:cin.get(),cin.get(ch)(成功返回非0值,否则返回0),cin.get(字符数组(或字符指针),字符个数n,终止字符)
getline函数:cin.getline(字符数组(或字符指针),字符个数n,终止标志字符)
读取字符知道终止字符或者读取n-1个字符,赋值给指定字符数组(或字符指针)
cin.peek() 不会跳过输入流中的空格、回车符。在输入流已经结束的情况下,cin.peek() 返回 EOF。
ignore(int n =1, int delim = EOF)
putback(char c),可以将一个字符插入输入流的最前面。
插入endl-输出所有数据,插入换行符,清空缓冲区
cout.put(参数) 输出单个字符(可以时字符也可以是ASII码)
*不是算子的一部分,星号表示在没有使用任何算子的情况下,就等效于使用了该算子,例如,在默认情况下,整数是用十进制形式输出的,等效于使用了 dec 算子
流操作算子使用方法:cout << hex << 12 << "," << 24;//c,18
setiosflags() 算子实际上是一个库函数,它以一些标志作为参数,这些标志可以是在 iostream 头文件中定义的以下几种取值,它们的含义和同名算子一样。
setf 和 unsetf 函数用到的flag,与 setiosflags 和 resetiosflags 用到的完全相同。
以上是关于C++ 介绍(十四)——IO流的主要内容,如果未能解决你的问题,请参考以下文章
大数据必学Java基础(七十四):对象流ObjectInputStream和ObjectOutputStream介绍
C++的IO流
C++的IO流
[C/C++]C++的IO流
[C/C++]C++的IO流
C++从入门到入土第十四篇:list的介绍与使用