博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C/C++——一些与输入有关的istream类成员函数
阅读量:4098 次
发布时间:2019-05-25

本文共 2013 字,大约阅读时间需要 6 分钟。

eof 函数

eof是end of file的缩写,表示“文件结束”。从输入流读取数据,如果到达文件末尾(遇文件结束符),eof函数值为非零值(真),否则为0(假)。

#include 
using namespace std;int main( ){ char c; while(!cin.eof( )) //eof( )为假表示未遇到文件结束符 if((c=cin.get( ))!=' ') //检查读入的字符是否为空格字符 cout.put(c); return 0;}

运行情况如下:

C++ is very interesting.↙
C++isveryinteresting.
^Z(结束)

peek函数

peek是“观察”的意思,peek函数的作用是观测下一个字符。其调用形式为:

c=cin.peek( );
函数的返回值是指针指向的当前字符,但它只是观测,指针仍停留在当前位置,并不后移。如果要访问的字符是文件结束符,则函数值是EOF(-1)。

putback函数

其调用形式为

cin.putback(ch);
其作用是将前面用get或getline函数从输入流中读取的字符ch返回到输入流,插入到当前指针位置,以供后面读取。

#include 
using namespace std;int main( ){ char c[20]; int ch; cout<<"please enter a sentence:"<

运行情况如下:

please enter a sentence:
I am a boy./ am a student./↙
The first part is:I am a boy.
The next character(ASCII code) is:32(下一个字符是空格)
The second part is:I am a student

ignore函数

其调用形式为

cin.ignore(n, 终止字符)
函数作用是跳过输入流中n个字符,或在遇到指定的终止字符时提前结束(此时跳过包括终止字符在内的若干字符)。如
ighore(5, ‘A’) //跳过输入流中个字符,遇’A’后就不再跳了
也可以不带参数或只带一个参数。如
ignore( ) // n默认值为1,终止字符默认为EOF,相当于ignore(1, EOF)

1.用ignore函数跳过输入流中的字符。先看不用ignore函数的情况:

#include 
using namespace std;int main( ){ char ch[20]; cin.get(ch,20,'/'); cout<<"The first part is:"<
<

运行结果如下:

I like C++./I study C++./I am happy.↙
The first part is:I like C++.
The second part is:(字符数组ch中没有从输入流中读取有效字符)

2 如果希望第二个cin.get函数能读取”I study C++.”,就应该设法跳过输入流中第一个’/’,可以用ignore函数来实现此目的,将程序改为:

#include 
using namespace std;int main( ){ char ch[20]; cin.get(ch,20,'/'); cout<<"The first part is:"<
<

运行结果如下:

I like C++./I study C++./I am happy.↙
The first part is:I like C++.
The second part is:I study C++.

3.其实也可以用cin.getline()来跳过‘/’

程序为:

#include 
using namespace std;int main(){ char ch[20]; cin.getline(ch, 20, '/'); cout << "The first part is:" << ch << endl; cin.getline(ch, 20, '/'); cout << "The second part is:" << ch << endl; return 0;}

运行结果如下:

I like C++./I study C++./I am happy.↙
The first part is:I like C++.
The second part is:I study C++.

转载地址:http://tsmii.baihongyu.com/

你可能感兴趣的文章
数据库事务
查看>>
JavaScript基础1:JavaScript 错误 - Throw、Try 和 Catch
查看>>
SQL基础总结——20150730
查看>>
SQL join
查看>>
JavaScript实现页面无刷新让时间走动
查看>>
CSS实例:Tab选项卡效果
查看>>
前端设计之特效表单
查看>>
前端设计之CSS布局:上中下三栏自适应高度CSS布局
查看>>
Java的时间操作玩法实例若干
查看>>
JavaScript:时间日期格式验证大全
查看>>
pinyin4j:拼音与汉字的转换实例
查看>>
XML工具代码:SAX从String字符串XML内获取指定节点或属性的值
查看>>
时间日期:获取两个日期相差几天
查看>>
责任链模式 Chain of Responsibility
查看>>
高并发与大数据解决方案概述
查看>>
解决SimpleDateFormat线程安全问题NumberFormatException: multiple points
查看>>
MySQL数据库存储引擎简介
查看>>
处理Maven本地仓库.lastUpdated文件
查看>>
Java并发编程1-线程池
查看>>
CentOS7,玩转samba服务,基于身份验证的共享
查看>>