cin中函数的作用(第5章)
来源:互联网 发布:u3d编程是什么语言 编辑:程序博客网 时间:2024/05/17 06:31
cin是istream类的对象,它是从标准输入设备(键盘)获取数据,程序中的变量通过流提取符">>"从流中提取数据。流提取符">>"从流中提取数据时跳过输入流中的空格、tab键、换行符等空白字符。注意:只有在输入完数据再按回车键后,该行数据才被送入键盘缓存区,形成输入流,提取运算符">>"才能从中提取数据。需要注意保证从流中读取数据能正常运行。
字符输入的流成员函数
除了可以用cin输入标准类型的数据外,还可以用istream类流对象的一些成员函数,实现字符的输入。如cin.get(),cin.getline(字符数组(或字符指针),字符个数n,终止标志字符)
eof函数
eof是end of file 的缩写,表示“文件结束”。从输入流读取数据,如果到达文件末尾(遇到文件结束符),eof函数值为非零值(表示真),否则为0(表示假)。
cin.eof()返回流结束位,即按键 ctrl 和 z 键
如:
char gc;
while(!cin.eof()) //直至按ctrl+z键退出!
{
cin>>gc;
cout<<gc<<endl;
}
fail()返回真表示流被设置错误。
比如非法输入和文件结束符就会使流被置错
peek函数
peek是观察的意思,peek函数的作用是观测下一个字符。 调用形式为c=cin.peek();
putback函数
调用形式为cin.putback(ch) 其作用是将前面用get或者getline函数从输入流中读取的字符ch返回到输入流,插入到当前指针的位置,供后面读取。
ignore函数
调用形式为cin.ignore(n,终止字符) 函数作用是跳过输入流中n个字符,或在遇到指定的终止字符时提前结束(此时跳过包括终止字符在内的若干字符)。
然后说一下的cin.clear()、cin.ignore()及cin.sync()的详细用法及区别
一、cin.clear()、cin.sync()
如果标示符没有改变那么即使清除了数据流也无法输入。所以两个要联合起来使用。例如:
#include<iostream>
using namespace std;
int main()
{
}
二、cin.ignore(a,ch)
它的一个常用功能就是用来清除以回车结束的输入缓冲区的内容,消除上一次输入对下一次输入的影响。
比如可以这么用:
cin.ignore(1024,'\n'),通常把第一个参数设置得足够大,这样实际上总是只有第二个参数'\n'起作用,所以这一句就是把回车(包括回车)之前的所以字符从输入缓冲(流)中清除出去。
三、cin.sync()和cin.ignor()的比较
另外,对于绑定了输出的输入流,调用sync(),还会刷新输出缓冲区。
但由于程序运行时并不总是知道外部输入的进度,很难控制是不是全部清除输入缓冲区的内容。通常我们有可能只是希望放弃输入缓冲区中的一部分,而不是全部。比如清除掉当前行、或者清除掉行尾的换行符等等。但要是缓冲区中已经有了下一行的内容,这部分可能是我们想保留的。这个时候最好不要用sync()。可以考虑用ignore函数代替。
cin.ignore(numeric_limits<std::streamsize>::max(),'/n');//清除当前行
cin.ignore(numeric_limits<std::streamsize>::max());
不要被长长的名字吓倒,numeric_limits<std::streamsize>::max()不过是climits头文件定义的流使用的最大值,你也可以用一个足够大的整数代替它。
使用ignore显然能比sync()更精确控制缓冲区。(1)
也可以参照这个链接看看用法:
http://blog.sina.com.cn/s/blog_5a735db00100b1z7.html
另外还有这个比较详细些:
http://apps.hi.baidu.com/share/detail/7211357
- cin中函数的作用(第5章)
- cin中函数的作用
- cin中函数的作用
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法----细节决定成败 (sort用法)
- C++中cin和cin.getline函数连用的问题
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- C++中cin、cin.get()、cin.getline()、getline()、gets()函数的用法
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- c++中 cin、cin.get()、cin.getline()、getline()、gets()函数的用法
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- C++中关于cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- [LeetCode] Candy
- 使用minus比对非LOB和LOB表的两个小脚本
- Ubuntu中root用户和user用户的相互切换
- WAS 节点不同步解决办法
- hdu 4968 Improving the GPA 策略 2014 Multi-University Training Contest 9-1009
- cin中函数的作用(第5章)
- Cyclone 黑金动力的IIC教程
- QTP 11.05下载地址及其汉化+破解
- hdoj 2089 不要62 【打表】
- 黑马程序员—【开发工具】Sublime Text 代码编辑神器下载
- PHP文件下载类
- 回调函数
- 结构大小不等于各数据类型之和--编程之道学习笔记1
- 淘宝数据库OceanBase SQL编译器部分 源码阅读--生成逻辑计划