输入输出流类iostream常用函数解析
原创作品,转载请注明出处: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常用函数解析的更多相关文章
- python重要的第三方库pandas模块常用函数解析之DataFrame
pandas模块常用函数解析之DataFrame 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 打开浏览器 ...
- pandas模块常用函数解析之Series(详解)
pandas模块常用函数解析之Series 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 打开浏览器输入网 ...
- numpy.random模块常用函数解析
numpy.random模块中常用函数解析 numpy.random模块官方文档 1. numpy.random.rand(d0, d1, ..., dn)Create an array of the ...
- Java中math类的常用函数
Java中math类的常用函数 在 Java 中 Math 类封装了常用的数学运算,提供了基本的数学操作,如指数.对数.平方根和三角函数等 只要在源文件的顶部加上下面这行代码就不必在数学方法名和常量名 ...
- java 多线程总结篇2之——Thread类及常用函数
此片文章主要总结的是Thread类及相关的基础概念和API,首先需要厘清线程调度中的几个基本概念: 一.线程调度的基本方法 1.调整线程优先级:Java线程有优先级,优先级高的线程会获得较多的运行机会 ...
- Java的IO输入输出流类的介绍(有图)
一.字节流 1.InputStream/OutputStream(输入流与输出流几乎一一对应) 读取的方法 int read() int read(byte[] buffer) int r ...
- Qt QString类及常用函数功能详解
QString 是 Qt 编程中常用的类,除了用作数字量的输入输出之外,QString 还有很多其他功能,熟悉这些常见的功能,有助于灵活地实现字符串处理功能. QString 存储字符串釆用的是 Un ...
- tensorflow常用函数解析
一.tf.transpose函数的用法 tf.transpose(input, [dimension_1, dimenaion_2,..,dimension_n]):这个函数主要适用于交换输入张量的不 ...
- Path模块部分常用函数解析——NodeJS
官网地址:https://nodejs.org/api/path.html path.resolve([...paths])# Added in: v0.3.4 参数[...paths]: <S ...
随机推荐
- Oak Seeds 网站项目回顾
项目是一个教育类网站,先给出网站网址:http://www.oakseeds.cn/ Oak Seeds原本的名字叫做American School,后来更给为Oak Seeds,意为橡木子.网站是为 ...
- TV端:通过遥控器的点击实现图片的上下左右抖动的效果
做TV端有一段时间了,我看到别的TV上有一个通过遥控器的触摸板来控制一张图片的相应方向的抖动,感觉听新奇的,就试着做了一个分享一下: 转载注明出处:http://www.cnblogs.com/hyy ...
- WPF DEV CellTemplateSelector(一个正确使用DevExpress CellTemplateSelector的Demo)
说明 我在项目中根据需求需要用到WPF Dev CellTemplateSelector时,遇到不少坑.曾一度想要放弃使用模板转换器,但又心有不甘,终于在不断努力下,达到了需求的要求.所以写下来和大家 ...
- java打包jar,war,ear包的作用、区别
java的打包jar,war,ear包的作用,区别,打包方式. a) 作用与区别 i. jar: 通常是开发时要引用通用(JAVA)类,打成包便于存放管理 ii. war ...
- Java之英格玛简单实现以及加密验证码的应用
最近看了一部电影<模仿游戏>,<模仿游戏>中艾伦·图灵破译英格玛让我对英格玛产生了好奇,于是就开始翻阅资料对其进行研究,但是毕竟智慧有限,所以我这里用Java实现一个简单的英格 ...
- JS闭包深入理解(理解篇)
看书的时候很是不明白为啥变量老是五,经过认真思考的出一下理解: function box() { var arr = []; for (var i = 0; i < 5; i++) { ...
- android Android性能优化之如何避免Overdraw
什么是Overdraw? Overdraw就是过度绘制 怎么来消灭overdraw呢?总的原则就是:尽量避免重叠不可见元素的绘制,基于这个原则,我们大概可以想出以下几招: 第一招:合理选择控件容器 ...
- 记录UITextField删除状态
self.testTextField.leftView = [[UIView alloc] initWithFrame:CGRectMake(, , , )]; self.testTextField. ...
- DirectX11中Shader的封装
引言 这个寒假学DirectX11的时候用的书是<Introduction to 3D Game Programming with DirectX 11>,里面关于Shader的部分全 ...
- 简单说说Markdown语法
# 简单说说 MarkDown 语法 html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr ...