原创作品,转载请注明出处:http://www.cnblogs.com/shrimp-can/p/5657192.html

一.成员类型

1. ios::fmtflags

格式标志,常用来设置输出的格式,用于函数flags、setf、unsetf作为其参数或返回类型。

field member constant effect when set
independent flags boolalpha read/write bool elements as alphabetic strings (true and false).
showbase write integral values preceded by their corresponding numeric base prefix.
showpoint write floating-point values including always the decimal point.
showpos write non-negative numerical values preceded by a plus sign (+).
skipws skip leading whitespaces on certain input operations.
unitbuf flush output after each inserting operation.
uppercase write uppercase letters replacing lowercase letters in certain insertion operations.
numerical base 
(basefield)
dec read/write integral values using decimal base format.
hex read/write integral values using hexadecimal base format.
oct read/write integral values using octal base format.
float format 
(floatfield)
fixed write floating point values in fixed-point notation.
scientific write floating-point values in scientific notation.
adjustment 
(adjustfield)
internal the output is padded to the field width by inserting fill characters at a specified internal point.
left the output is padded to the field width appending fill characters at the end.
right the output is padded to the field width by inserting fill characters at the beginning.

2. ios_base::iostate

flag value indicates
eofbit End-Of-File reached while performing an extracting operation on an input stream.
failbit The last input operation failed because of an error related to the internal logic of the operation itself.
badbit Error due to the failure of an input/output operation on the stream buffer.
goodbit No error. Represents the absence of all the above (the value zero).

3. 其他:sentry、event、event_callback、failure、Init、openmode、seekdir

二.从输入流类istream继承的函数

1. gcount:streamsize gcount() const;

返回从最后次非格式化输入操作中提取的读取的字符个数

  char str[20];
std::cout << "Please, enter a word: ";
std::cin.getline(str,20);
std::cout << std::cin.gcount() << " characters read: " << str << '\n';
输出为:
Please, enter a word: simplify
9 characters read: simplify

2. get:int get();读取一个字符,通常用来排除换行符的影响

istream& get (char& c);读取一个字符到c中

istream& get (char* s, streamsize n);读取一个字符串,直到遇到换行符或者读取了n-1个字符,会自动在末尾添加字符'\0'

istream& get (char* s, streamsize n, char delim);读取一个字符串,直到遇到字符delim或者读取了n-1个字符,会自动在末尾添加字符'\0'

换行符会留在输入队列中

3. getline:istream& getline (char* s, streamsize n );读取一个字符串,直到遇到换行符或者读取了n个字符(换行符也会读取),并将换行符替换为'\0'

istream& getline (char* s, streamsize n, char delim );读取一个字符串,直到遇到字符delim或者读取了n个字符,并将换行符替换为'\0'

3. ignore:istream& ignore (streamsize n = 1, int delim = EOF);

从输入队列中提取字符,并忽略它们,直到提取完前面n个字符或者遇到字符delim为止(delim也提取并忽略)。完成后输入队列中的第一个字符为第n+1个字符或者delim后面个字符

  char first, last;
std::cout << "Please, enter your first name followed by your surname: ";
first = std::cin.get(); // get one character
std::cin.ignore(256,' '); // ignore until space
last = std::cin.get(); // get one character
std::cout << "Your initials are " << first << last << '\n';

输出为:

Please, enter your first name followed by your surname: John Smith
Your initials are JS

4. 其他:peek、read、readsome、putback、unget

5. tellg、seekg

6. sync:int sync();

输入缓冲区同步

三、从输出流中继承的函数

1. put:ostream& put (char c);

输出字符c

2. 其他:write、tellp、seekp、flush

四、保护成员函数(C++11)

=操作、swap

五、从ios类继承来的函数

1. ios::good:bool good() const;

如果错误状态标识(eofbit、failbit、badbit)被设置了返回false,如果没有返回ture

2. ios::eof:bool eof() const;

如果eofbit被设置了返回ture,说明到达了输入末尾了

3. fail:bool fail() const;

如果failbit或者badbit被设置了返回true

4. bad:bool bad() const;

如果badbit被设置了返回true

iostate value
(member constants)
indicates functions to check state flags
good() eof() fail() bad() rdstate()
goodbit No errors (zero value iostate) true false false false goodbit
eofbit End-of-File reached on input operation false true false false eofbit
failbit Logical error on i/o operation false false true false failbit
badbit Read/writing error on i/o operation false false true true badbit

5. ios::!操作

如果failbit或者badbit被设置了返回true

6. ios::clear:void clear (iostate state = goodbit);

为错误状态标识设置新的值

7. ios::fill:char fill() const;返回填充字符

char fill (char fillch);用字符fillch进行填充,返回填充字符

填充输出的空闲空间

  char prev;
std::cout.width (10);
std::cout << 40 << '\n';
prev = std::cout.fill ('x');
std::cout.width (10);
std::cout << 40 << '\n';
std::cout.fill(prev);

输出:

40
xxxxxxxx40

8. 其他:rdstate、setstate、copyfmt、exceptions、imbue、tie、rdbuf、narrow、widen

六、从ios_base类中继承的函数

1. flags:fmtflags flags() const;返回当前格式

fmtflags flags (fmtflags fmtfl);设置新的格式,返回之前的格式

  std::cout.flags ( std::ios::right | std::ios::hex | std::ios::showbase );
std::cout.width (10);
std::cout << 100 << '\n';

输出:      0x64

2. setf:fmtflags setf (fmtflags fmtfl);

fmtflags setf (fmtflags fmtfl, fmtflags mask);

设置格式,返回设置之前的格式

  std::cout.setf ( std::ios::hex, std::ios::basefield );  // set hex as the basefield
std::cout.setf ( std::ios::showbase ); // activate showbase
std::cout << 100 << '\n';
std::cout.unsetf ( std::ios::showbase ); // deactivate showbase
std::cout << 100 << '\n';

输出:

0x64
64

3. unset:void unsetf (fmtflags mask);

清空mask选择的格式

4. precision:streamsize precision() const;返回当前的浮点精度(即小数点位数)

streamsize precision (streamsize prec);设置浮点精度,返回之前的浮点精度

5. width:streamsize width() const;返回当前域宽度

streamsize width (streamsize wide);设置域宽度,返回之前的域宽度

6. 其他:imbue、getloc、xalloc、iword、pword、register_callback、sync_with_stdio

参考:http://www.cplusplus.com/reference/istream/iostream/

输入输出流类iostream常用函数解析的更多相关文章

  1. python重要的第三方库pandas模块常用函数解析之DataFrame

    pandas模块常用函数解析之DataFrame 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 打开浏览器 ...

  2. pandas模块常用函数解析之Series(详解)

    pandas模块常用函数解析之Series 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 打开浏览器输入网 ...

  3. numpy.random模块常用函数解析

    numpy.random模块中常用函数解析 numpy.random模块官方文档 1. numpy.random.rand(d0, d1, ..., dn)Create an array of the ...

  4. Java中math类的常用函数

    Java中math类的常用函数 在 Java 中 Math 类封装了常用的数学运算,提供了基本的数学操作,如指数.对数.平方根和三角函数等 只要在源文件的顶部加上下面这行代码就不必在数学方法名和常量名 ...

  5. java 多线程总结篇2之——Thread类及常用函数

    此片文章主要总结的是Thread类及相关的基础概念和API,首先需要厘清线程调度中的几个基本概念: 一.线程调度的基本方法 1.调整线程优先级:Java线程有优先级,优先级高的线程会获得较多的运行机会 ...

  6. Java的IO输入输出流类的介绍(有图)

    一.字节流 1.InputStream/OutputStream(输入流与输出流几乎一一对应) 读取的方法   int read()   int read(byte[] buffer)   int r ...

  7. Qt QString类及常用函数功能详解

    QString 是 Qt 编程中常用的类,除了用作数字量的输入输出之外,QString 还有很多其他功能,熟悉这些常见的功能,有助于灵活地实现字符串处理功能. QString 存储字符串釆用的是 Un ...

  8. tensorflow常用函数解析

    一.tf.transpose函数的用法 tf.transpose(input, [dimension_1, dimenaion_2,..,dimension_n]):这个函数主要适用于交换输入张量的不 ...

  9. Path模块部分常用函数解析——NodeJS

    官网地址:https://nodejs.org/api/path.html path.resolve([...paths])# Added in: v0.3.4 参数[...paths]: <S ...

随机推荐

  1. 自定义IHttpModule

    HttpModule作用是 IIS将接收到的请求分发给相应的ISAPI处理前,先截获该请求. 通过这个我们可以完成很多额外功能. 自定义IHttpModule的例子: 通过自定义HttpModule, ...

  2. asp.net权限认证篇外:集成域账号登录

    在之前的我们已经讲过asp.net权限认证:Windows认证,现在我们来讲讲域账号登录, 这不是同一件事哦,windows认证更多的是对资源访问的一种权限管控,而域账号登录更多的是针对用户登录的认证 ...

  3. viewpager翻页的窗帘效果动画

    前端时间比较忙,好长时间没有更新微博,就工作中出现的部分问题,与大家分享一下. 大家都知道viewpager在android开发中是运用率比较高的控件,现在就其窗帘下过的动画分享. 文章出处:http ...

  4. 笑谈ArcToolbox (1) ArcToolbox 的发展方向

    笑谈ArcToolbox (1) ArcToolbox 的发展方向 by 李远祥 ArcGIS工具箱ArcToolbox具有非常多的工具,相信用过的人都非常惊叹,其功能完备并且强大,种类繁多,总能找到 ...

  5. Omi教程-组件通讯

    组件通讯 Omi框架组建间的通讯非常遍历灵活,因为有许多可选方案进行通讯: 通过在组件上声明 data-* 传递给子节点 通过在组件上声明 data 传递给子节点 父容器设置 childrenData ...

  6. JavaScript刷新页面的方法(包括Frame框架的刷新方式)

    JavaScript刷新页面的方法 1    history.go(0) 去指定的某页 2    window.location.reload()刷新当前页面 window.location.relo ...

  7. 跟着内核学框架-从misc子系统到3+2+1设备识别驱动框架

    misc子系统在Linux中是一个非常简单的子系统,但是其清晰的框架结构非常适合用来研究设备识别模型.本文从misc子系统的使用出发,通过了解其机制来总结一套的设备识别的驱动框架,即使用使用同一个驱动 ...

  8. 【前端】:JavaScript

    前言: 开始学JavaScript,Dom,jQuery了,知识好杂,本身记忆力就不行的~~这篇博客简单介绍下JavaScript. 下篇博客写关于Dom的. JavaScript是一门编程语言(之前 ...

  9. Raid0、Raid1、Raid0+1、Raid3和Raid5 几种磁盘阵列区别

    前两天发现服务器挂了,到机房重启时发现硬盘挂载不上,虽然是开发,但是在交接工作的时候被告知了一点硬件的知识,判断出是硬盘故障.这个呵呵了,修不来只能找服务器售后来换硬盘或是维修了. 关于怎么诊断出硬盘 ...

  10. C++测试利器--google test开源测试框架

    资料 偶然发现了google的测试框架gtest,马上试了下,效果挺不错,特别是对于写c++的人来说,方便很多.以前自己写c++的模块,通常是写好了模块后再另外定义些函数,然后在函数里面写测试用例来测 ...