C++语言不直接处理输入输出,而是通过一簇定义在标准库中的类型来处理IO。这些类型支持从设备读取数据、向设备写入数据的IO操作,设备可以是文件、控制台窗口等,还有一些类型允许内存IO,即,从string读取数据,向string写入数据。
C++/C++11中头文件<iostream>定义了标准输入/输出流对象。
包含了<iostream>也自动包含了<ios>、<streambuf>、<istream>、<ostream>和<iosfwd>。
头文件<iostream>中的对象包括: (1)、narrow characters(char)即窄字符:cin(standard input stream (object))、cout(standard output stream (object))、cerr(standard output stream for errors (object))、clog(standard output stream for logging (object)); (2)、wide characters(wchar_t)即宽字符:wcin(standard input stream (wide) (object))、wcout(standard output stream (wide) (object))、wcerr(standard output stream for errors (wide) (object))、wclog(standard output stream for logging (wide) (object))。 __PURE_APPDOMAIN_GLOBAL extern _CRTDATA2 istream cin, *_Ptr_cin; __PURE_APPDOMAIN_GLOBAL extern _CRTDATA2 ostream cout, *_Ptr_cout; __PURE_APPDOMAIN_GLOBAL extern _CRTDATA2 ostream cerr, *_Ptr_cerr; __PURE_APPDOMAIN_GLOBAL extern _CRTDATA2 ostream clog, *_Ptr_clog; __PURE_APPDOMAIN_GLOBAL extern _CRTDATA2 wistream wcin, *_Ptr_wcin; __PURE_APPDOMAIN_GLOBAL extern _CRTDATA2 wostream wcout, *_Ptr_wcout; __PURE_APPDOMAIN_GLOBAL extern _CRTDATA2 wostream wcerr, *_Ptr_wcerr; __PURE_APPDOMAIN_GLOBAL extern _CRTDATA2 wostream wclog, *_Ptr_wclog;
C ++ 中所有的IO头文件,以及其内的类型定义
一、 sstream.h头文件
C++使用标准库类来处理面向流的输入和输出:
(1)、iostream处理控制台IO;
(2)、fstream处理命名文件IO;
(3)、stringstream完成内存string的IO。
类fstream和stringstream都是继承在类iostream的。
输入类都继承自istream,输出类都继承自ostream。因此,可以在istream对象上执行的操作,也可在ifstream或istringstream对象上执行。继承自ostream的输出类也有类似情况。
C++风格的串流控制 ,在sstream.h头文件中:
C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件。
istringstream类用于执行C++风格的串流的输入操作。
ostringstream类用于执行C风格的串流的输出操作。
strstream类同时可以支持C风格的串流的输入输出操作。