CPP I/O
本文已经搬至https://bobliu0518-blog.netlify.com/post/2017-07-01-cpp-io
今天我想分享一下 C++ 11 的输入/输出(简称I/O)。
目录
简介
管理流和缓冲区的工作有点复杂,但
iostream(以前为iostream.h)文件中包含一些专门设计用来实现、管理流和缓冲区的类。streambuf类为缓冲区提供了内存,并提供了用于填充缓冲区、访问缓冲区内容、刷新缓冲区和管理缓冲区内存的类方法;ios_base类(ios是io-stream,和Apple的操作系统iOS没关系)表示了流的一般特征,如是否可读取、是二进制流还是文本、管理流等;;ios类基于ios_base,其中包括了一个指向streambuf对象的指针成员;ostream类是从ios类派生而来的,提供了输出方法;istream类也是从ios类派生而来的,提供了输入方法;iostream类是基于istream和ostream类的,因此继承了输入方法和输出方法。
C++的iostream类库管理了很多细节。例如,在程序中包含iostream文将会自动创建8个流对象(4个用于窄字符流,4个用于宽字符流)(cin,cout,cerr,clog)。
C++在头文件fstream(以前为fstream.h)中定义了多个新类,其中包括用于文件输入的ifstream和用于文件输出的ofstream。C++还定义了一个fstream类,用于同步文件I/O。这些类都是从头文件iostream中的类派生而来的,因此这些新类的对象可以使用前面介绍过的方法。
(引用自C++ Primer Plus 第六版 中文版 第十七章)
使用iostream
cin:标准输入流cout:标准输出流cerr:标准错误流(不缓冲)clog:标准错误流(缓冲)
在他们前面加上”w”(即wcin等)即可处理wchar_t类型。
代码示例:
//io1.cpp
#include<iostream>
int main()
{
using namespace std;
int a,b;
char str[20];
cerr<<"Input 2 integers:";
cin>>a>>b;
if(a==b)
clog<<"a=b!"<<endl;
cerr<<"Input a string:";
cin>>str;
cout<<"a:"<<a<<endl;
C++11 输入输出详解

本文详细介绍了C++11中的I/O操作,包括iostream和fstream的使用。讲解了如何进行标准输入输出、错误流处理,以及如何通过fstream进行文件读写。通过示例程序解释了cin和getline的区别,以及fstream的open_mode参数设置。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



