原创作品,转载请注明出处: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;

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

  1. char str[20];
  2. std::cout << "Please, enter a word: ";
  3. std::cin.getline(str,20);
  4. std::cout << std::cin.gcount() << " characters read: " << str << '\n';
    输出为:
  1. Please, enter a word: simplify
  2. 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后面个字符

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

输出为:

  1. Please, enter your first name followed by your surname: John Smith
  2. 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进行填充,返回填充字符

填充输出的空闲空间

  1. char prev;
  2. std::cout.width (10);
  3. std::cout << 40 << '\n';
  4. prev = std::cout.fill ('x');
  5. std::cout.width (10);
  6. std::cout << 40 << '\n';
  7. std::cout.fill(prev);

输出:

  1. 40
  2. xxxxxxxx40

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

六、从ios_base类中继承的函数

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

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

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

输出:      0x64

2. setf:fmtflags setf (fmtflags fmtfl);

fmtflags setf (fmtflags fmtfl, fmtflags mask);

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

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

输出:

  1. 0x64
  2. 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. How To Ask Questions The Smart Way 转

    先查后问多思考莫做伸手党. 原文链接 译文链接

  2. PLSQL游标使用

    游标是一个指针,它指向一块SQL区域,该区域用于存储处理过来的SELECT或者其他的DML操作返回的数据.由PLSQL创建并管理的游标成为隐式游标,用户创建并管理的成为显示游标.游标可以看做是指向记录 ...

  3. (C#)xml的简单理解创建和读取

    xml知识点清理:一.文档规则 1.区分大小写. 2.属性值必须加引号(单引号.双引号都可以),一般情况下建议使用使用双引号. 3.所有标记必须有结束符号. 4.所有空标记必须关闭. 5.必须有且仅有 ...

  4. ABP文档 - Quartz 集成

    文档目录 本节内容: 简介 安装 创建工作 调度工作 更多 简介 Quartz 是一个功能完整的开源工作调度系统,可用于最小的应用到一个大型的企业系统.Abp.Quartz 包简单地把Quartz集成 ...

  5. jQuery插件,将内容插入到光标处

    (function ($) { $.fn.extend({ insertAtCaret : function (myValue) { var $t = $(this)[0]; if (document ...

  6. 为什么使用enable_shared_from_this——shared_ptr两类错误

    在使用C++实现弱回调时,订阅者应当维护一系列发布者的weak_ptr,而发布者注册回调时要传出this的shared_ptr指针,流行的实现方法是使用std::enable_shared_from_ ...

  7. NHibernate的常见问题及解决方案

    问题1 : 异常:in expected: <end-of-text> (possibly an invalid or unmapped class name was used in th ...

  8. margin-top、margin-bottom的一些分析

    margin-top:表示该容器距离上面容器的距离 情况一:如果该容器上面没有容器,则这个样式属性则被父容器占用了 html代码如下: <div id ="fa"> & ...

  9. devexpress表格控件gridcontrol实现纵向标头

    1.devexpress控件gridcontrol中的标头默认是横向的,如果要实现纵向标头应该怎么做呢.通过官网的资料整理了一个简单的案例,给大家分享一下.运行效果图如下: 2.数据绑定代码如下: D ...

  10. c#模拟js escape方法(转)

    实现URI字符串转化成escape格式的字符 public static string Escape(string s)         {             StringBuilder sb ...