C++流输入istream的成员函数及其用法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++流输入istream的成员函数及其用法相关的知识,希望对你有一定的参考价值。
希望哪位高手能够详细讲解下istream(C++中的流输入)中各种成员函数的用法。包括istream::eatwhite,istream::get,istream::gcount,istream::ignore,istream::peek,istream::putback,istream::read,istream::seekg,istream::tellg这些函数的用法。我已经查了MSDN但是小弟英语水平有限,而且没有对他们的应用举例,所以看不明白,希望能够哪位高手能够对上面的函数应用举例并说明一下。谢谢
参考技术A Input Functions — Public Membersget
Extracts characters from the stream up to, but not including, delimiters.
getline
Extracts characters from the stream (extracts and discards delimiters).
read
Extracts data from the stream.
ignore
Extracts and discards characters.
peek
Returns a character without extracting it from the stream.
gcount
Counts the characters extracted in the last unformatted operation.
eatwhite
Extracts leading white space.
c++的输入和输出流
C++编译系统提供了用于输入输出的iostream类库。iostream这个单词是由3个部 分组成的,即i-o-stream,意为输入输出流。在iostream类库中包含许多用于输入输出的 类。常用的见表
ios是抽象基类,由它派生出istream类和ostream类,两个类名中第1个字母i和o分别代表输入(input)和输出(output)。
istream类支持输入操作,ostream类支持输出操作, iostream类支持输入输出操作。iostream类是istream类和ostream类通过多重继承而派生的类。其继承层次见上图表示。
C++对文件的输入输出需要用ifstrcam和ofstream类,两个类名中第1个字母i和o分别代表输入和输出,第2个字母f代表文件 (file)。ifstream支持对文件的输入操作, ofstream支持对文件的输出操作。类ifstream继承了类istream,类ofstream继承了类ostream,类fstream继承了 类iostream。见图
I/O类库中还有其他一些类,但是对于一般用户来说,以上这些已能满足需要了。
与iostream类库有关的头文件
iostream类库中不同的类的声明被放在不同的头文件中,用户在自己的程序中用#include命令包含了有关的头文件就相当于在本程序中声明了所需 要用到的类。可以换 —种说法:头文件是程序与类库的接口,iostream类库的接口分别由不同的头文件来实现。常用的有
- iostream 包含了对输入输出流进行操作所需的基本信息。
- fstream 用于用户管理的文件的I/O操作。
- strstream 用于字符串流I/O。
- stdiostream 用于混合使用C和C + +的I/O机制时,例如想将C程序转变为C++程序。
- iomanip 在使用格式化I/O时应包含此头文件。
在iostream头文件中定义的流对象
在 iostream 头文件中定义的类有 ios,istream,ostream,iostream,istream _withassign, ostream_withassign,iostream_withassign 等。
在iostream头文件中不仅定义了有关的类,还定义了4种流对象,
对象 |
含义 |
对应设备 |
对应的类 |
c语言中相应的标准文件 |
cin |
标准输入流 |
键盘 |
istream_withassign |
stdin |
cout |
标准输出流 |
屏幕 |
ostream_withassign |
stdout |
cerr |
标准错误流 |
屏幕 |
ostream_withassign |
stderr |
clog |
标准错误流 |
屏幕 |
ostream_withassign |
stderr |
在iostream头文件中定义以上4个流对象用以下的形式(以cout为例):
ostream cout ( stdout);
在定义cout为ostream流类对象时,把标准输出设备stdout作为参数,这样它就与标准输出设备(显示器)联系起来,如果有
cout <<3;
就会在显示器的屏幕上输出3。
人们在输入输出时有一些特殊的要求,如在输出实数时规定字段宽度,只保留两位小数,数据向左或向右对齐等。C++提供了在输入输出流中使用的控制符(有的书中称为操纵符)
用流对象的成员函数控制输出格式
除了可以用控制符来控制输出格式外,还可以通过调用流对象cout中用于控制输出格式的成员函数来控制输出格式。用于控制输出格式的常用的成员函数如下:
流成员函数setf和控制符setiosflags括号中的参数表示格式状态,它是通过格式标志来指定的。格式标志在类ios中被定义为枚举值。因此在引用这些格式标志时要在前面加上类名ios和域运算符“::”。格式标志见表13.5。
以上是关于C++流输入istream的成员函数及其用法的主要内容,如果未能解决你的问题,请参考以下文章
C++学习45 流成员函数put输出单个字符 cin输入流详解 get()函数读入一个字符