C++语言本身并不提供输入输出的功能,输入输出功能由IO库提供,IO库属于C++标准库的一个子集,需要掌握的知识点并不是很多,所以也并不是很难掌握,这里只是个人学习的一点总结,方便以后随时复习一下,免得忘记。
C++中IO操作主要的流操作对象有三个,控制台输入输出流、文件输入输出流、还有内存输入输出流,下面进行分别介绍
控制台输入输出:
使用的头文件:#include<iostream>
控制台数据读入流:istream,wistream,前者主要用来通过控制台读入普通字符,后者根据需要用来读入宽字符数据
控制台数据输出流:ostream,wostream,前者主要用来通过控制台输出普通字符,后者根据需要来输出宽字符数据
控制台读写流:iostream,wiostream,支持从控制台读入数据和向控制台输出数据,前者用于普通字符,后者用来宽字符的输入输出
文件的输入输出:
使用的头文件:#include<fstream>
文件数据读入流:ifstream,wifstream,前者主要用来通过文件读入普通字符,后者根据需要用来读入宽字符数据
文件数据输出流:ofstream,wofstream,前者主要用来向文件输出普通字符,后者根据需要来输出宽字符数据
文件读写流:iofstream,wiofstream,支持从文件读入数据和向文件输出数据,前者用于普通字符,后者用来宽字符的输入输出
内存输入输出流 :
简介:内存输入输出流顾名思义就是由内存读取数据到内存中,通常有内部数据结构string读取数据,没听说支持别的数据结构,未实验
使用的头文件:#include<sstream>
字符串输入数据流:istringstream,wistringstream 从string字符串中读取字符,前者用于普通字符,后者用来宽字符的输入输出
字符串输出数据流:ostringstream,wostringstream 输出数据到string字符串,前者用于普通字符,后者用来宽字符的输入输出
字符串读写流:stringstream,wstringstream 支持从字符串读入数据和向字符串输出数据,前者用于普通字符,后者用来宽字符的输入输出
IO标准库函数对于不同的操作对象的相关函数通过继承来实现,在c++中继承的子类可以被当做父类的对象来使用,IO对象不支持对象间的赋值操作,每次执行IO操作是,都会先将数据放入缓冲区,然后在一定的条件下统一进行输入输出操作,通常进行输入输出时会要求对缓冲区进行刷新,为此定义有三个输出控制符,endl刷新缓冲区并换行,ends刷新缓冲去并追加空字符,flush用来刷新缓冲区,也可以使用cout<<unitbut;来显示设置每次执行输出操作都进行缓冲区的刷新。
输入输出流具有条件状态标志,可以帮助我们来访问和操纵流的条件状态,当使用cin>>ss作为条件语句是通常会返回两个状态,有效状态和无效状态,当函数正常结束且输入有效是返回有效状态,否则返回无效状态。