eof 函数

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

#include <iostream>
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 <iostream>
using namespace std;
int main( )
{char c[20];int ch;cout<<"please enter a sentence:"<<endl;cin.getline(c,15,'/');cout<<"The first part is:"<<c<<endl;ch=cin.peek( );  //观看当前字符cout<<"The next character(ASCII code) is:"<<ch<<endl;cin.putback(c[0]);  //将'I'插入到指针所指处cin.getline(c,15,'/');cout<<"The second part is:"<<c<<endl;return 0;
}

运行情况如下:
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 <iostream>
using namespace std;
int main( )
{char ch[20];cin.get(ch,20,'/');cout<<"The first part is:"<<ch<<endl;cin.get(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:(字符数组ch中没有从输入流中读取有效字符)

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

#include <iostream>
using namespace std;
int main( )
{char ch[20];cin.get(ch,20,'/');cout<<"The first part is:"<<ch<<endl;cin.ignore( );//跳过输入流中一个字符cin.get(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++.

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

#include <iostream>
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++.

C/C++——一些与输入有关的istream类成员函数相关推荐

  1. 输入一个字符串,用子函数完成在字符串中找出ACSII码值最大的字符,将其放在第一个位置,并将该字符前的所有字符向后顺序移动

    <程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p143 7.1.2 上级实训内容 [实训内容9]输入一个字符串,用子函数完成在字符串中找出ACSII码 ...

  2. C---编写程序:求出1~1000之间能被7或12整除,但不能同时被二者整除的所有整数,将结果保存在数组中,要求程序数据的输入、计算和输出均使用函数实现。

    编写程序:求出1~1000之间能被7或12整除,但不能同时被二者整除的所有整数,将结果保存在数组中,要求程序数据的输入.计算和输出均使用函数实现. 编程思路:分别编写函数input().cal().o ...

  3. 分段函数返回字符c语言,C++对cin输入字符的判断及分段函数处理方法示例

    本文实例讲述了C++对cin输入字符的判断及分段函数处理方法.分享给大家供大家参考,具体如下: 这两个本来也不是什么问题,然而真正遇到还是有地方可以研究的.首先是C++对于cin输入的判断,有时候你定 ...

  4. C语言: 定义一个函数int isprime(int n),用来判别一个正整数n是否为素数,若为素数函数返回值为1,否则为0。在主函数中输入一个整数x,调用函数isprime(x)来判断这个整数x是

    原题: 定义一个函数int isprime(int n),用来判别一个正整数n是否为素数,若为素数函数返回值为1,否则为0.在主函数中输入一个整数x,调用函数isprime(x)来判断这个整数x是不是 ...

  5. python判断正确的是_Python输入数据类型判断正确与否的函数大全(非常全)

    对于python输入数据类型判断正确与否的函数大致有三类: (1)type(),它的作用直接可以判断出数据的类型 (2)isinstance(),它可以判断任何一个数据与相应的数据类型是否一致,比较常 ...

  6. 求三个长方柱的体积,数据成员包括length(长)、width(高)。要求用成员函数实现以下功能: (1)用键盘分别输入三个长方柱的长宽高; (2)计算长方柱的体积;(3)输出3个长方柱的体积。

    项目要求: 需要求三个长方柱的体积,请编写一个基于对象的程序,数据成员包括length(长).width(高).要求用成员函数实现以下功能: (1)用键盘分别输入三个长方柱的长宽高: (2)计算长方柱 ...

  7. c语言中输入x分段函数值,c语言程序改错:输入x,计算并输出分段函数y的值.0 x0...

    C语言 . 输入半径R ,并计算圆的面积S 和周长L .3. 编写一个程序实现把小写字母转换成大写字母.比如 #includeintmain(){floatr,s,l;scanf("%f&q ...

  8. C++:用含成员函数的类来实现输入和输出时间。

    题目概述: 用含成员函数的类来实现输入和输出时间. 编程: #include < iostream> using namespace std; class Time //声明Time类 { ...

  9. Java必备基础十六——输入与输出流相关类详细介绍

    坚持的第16篇. 鸡汤一下:真正能让你走远的,都是自律.积极和勤奋 文章目录 序言 一.什么是流 二.流的种类划分 1.按数据流的方向分:输入流.输出流 1.1 定义 1.2 层次结构 2.按处理数据 ...

最新文章

  1. vba和python哪个好学-Python或将取代VBA,成为Excel官方脚本语言???
  2. 记录ishield遇到的问题的解决过程
  3. 每个Form类都实现了IWin32Window接口!
  4. trafficserver records.config参数说明
  5. 黑莓发布企业服务SWS 兼容Android和iOS设备
  6. Windows环境下sublime text 3搭建前端开发环境
  7. 移动通讯技术--3G
  8. 修改Google浏览器默认打开是金山毒霸网址
  9. Delphi开发工具DevExpress VCL全新发布v21.1.5
  10. 面板数据分析步骤及流程-R语言
  11. Android重新分区parted,使用parted划分GPT分区
  12. 安卓移动办公软件_尚朋高科TeeTek云端移动办公系统,云端软件5G时代的趋势
  13. VMware Bitfusion GPU共享技术的应用场景
  14. linux下使用动态壁纸
  15. 能够证明“3=0”吗?
  16. 卿斯汉:畅谈中国在可信计算领域的成绩
  17. Java基础50题(3) 21~30题
  18. 编译GPU版本Matconvnet
  19. LJP Little John PalmOS 1.0 Release 最新版 (RC9后的正式版)
  20. 滚动页面,实现导航栏固定在顶部(吸顶效果)

热门文章

  1. python二进制移位_python学习特辑——二进制和位运算篇
  2. C++:const修饰变量、形参、函数
  3. delphi测试服务器响应时间,负载测试中的页面响应时间 - Visual Studio (Windows) | Microsoft Docs...
  4. Softmax和softmax loss的理解
  5. wampserver的phpmyadmin(默认3306)端口如何更改为3307?
  6. CSS3特效 - 呼吸灯效果
  7. 后台管理系统框架bootstrap中文版
  8. mysql+一致性非锁定读_MySQL探秘(六):InnoDB一致性非锁定读
  9. java爬虫代码示例_那些让你代码思维和能力有较大的提升Java源码
  10. PHP随机静态页面生成系统源码雨尘SEO系统v1.3