189 8069 5689

(C/C++学习)3.C++中cin的成员函数

说明:流输入运算符,在一定程度上为C++程序的开发提供了很多便利,我们可以避免C语言那种繁琐的输入格式,比如在输入一个数值时,还需指定其格式,而cin以及cout则不需要。但是cin也有一些缺陷,比如当输入字符串时,遇到空格便截止,举个例子,如下,我们在输入“12 23.5 aa bb cc dd”,希望打印出的是前两个数值以及后面一个字符串“aa bb cc dd”,但实际打印出来的只有前两个数字和“aa”。

我们提供的服务有:成都网站制作、成都网站设计、外贸营销网站建设、微信公众号开发、网站优化、网站认证、眉县ssl等。为成百上千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的眉县网站制作公司

  1 #include 
  2 using namespace std;
  3 int main()
  4 {
  5     int a;
  6     double b;
  7     string buf;
  8     cin>>a>>b>>buf;
  9     //读入字符串时遇到空格则止 12 23.5 aa bb cc dd
 10 
 11     cout<

为了解决诸多如此类的问题,于是C++提供了cin不可或缺的成员函数。具体用法及区别一一列举如下。

 

1.char get() 读入一个字符并返回(包括回车;tab;空格等空白字符)

示例1:

  1 int main()
  2 {
  3     char ch;
  4 
  5     //EOF为文件结束符,在windows系统下,用ctrl+z输入EOF,在linux环境下为ctrl+d
  6     while((ch = cin.get()) != EOF)
  7         cout<

注意:此程序在运行后,可以在键盘上任意输入,屏幕将显示输入的所有内容,当输入文件结束符时,退出程序。(所有示例应包含头文件,并且使用命名空间std,此处略,详见说明部分程序。下同)

 

2.istream& get(char&) 读入一个字符,读取成功返回非0,读取失败(比如遇到文件结束符)返回0值

示例2:

  1 int main()
  2 {
  3     char ch;
  4 
  5     //get函数返回的是istream&,可实现链式编程
  6     while(cin.get(ch))
  7         cout.put(ch);
  8     return 0;
  9 }

 

3. istream& get(char *, int ,char )

istream& get(字符指针,字符个数 n,终止字符)
功能:从输入流中读取n-1字符,赋给字符数组或字符指针所指向的数组。如果在读取n-1个字符之前遇到终止字符,则提前结束。如果成功则返回非0,失败则返回0。会清空char*指向的空间,未读到n-1个字符或中止符,则会阻塞。不会越过中止符。在讲这个成员函数之前,先说几个简单的cin的其他成员函数,以便于更好地阐述这个函数:

a.istream& ignore(streamsize n = 1, int delim= EOF);

功能:从当前指针位置开始,忽略n个字节字符,直到遇到delim停止,默认参数为忽略一个字节

b.int peek()

功能:用来查看当前指针所在位置,用完当前指针位置不发生变化。

c.istream& putback (char c);

功能:往当前指针位置插入一个char c;

示例3:

(C/C++学习)3.C++中cin的成员函数(C/C++学习)3.C++中cin的成员函数查看代码
  1 int main()
  2 {
  3     char ch[20];
  4 
  5     //键盘输入i like c/i like c++ also/
  6     cin.get(ch,20,'/');
  7     cout<<"the first part is:"<

程序运行结果:

(C/C++学习)3.C++中cin的成员函数

 

4.istream& getline(char *p, int n, char c)

cin.getline(字符数组或字符指针,字符个数 n,[终止字符])
功能:与带三个参数的get()功能类似,从输入流中读取n-1字符,赋给字符数组或字符指针所指向的空间。如果在读取n-1个字符之前遇到终止字符(如果不写,默认为’\n’),则提前结束。会清空char*指向的空间,未读到n-1个字符或中止符,则会阻塞,会越过中止符。
 
示例3:
  1 int main()
  2 {
  3     char str[1024];

  4     //此处输入同上,为i like c/i like c++ also/
  5     //输入20个字符,遇到'/'截止,会越过终止符,不需手动忽略,
  6     //如果不写终止符,默认为'\n'
  7     cin.getline(str,10,'/');
  8     cout<

程序运行结果:

(C/C++学习)3.C++中cin的成员函数

 

需要注意的是:

get和getline最大的区别就是,get遇到界定符时,停止执行,但并不从流中提取界定符,再次调用会遇到同一个界定符,函数将立即返回,不会提取输入。getline则不同,它将从输入流中提取界定符,但伤然不会把它放到缓冲区中。简单来说就是前者不会自动忽略界定符,而后者会。

 

5.ostream put(char p)

功能:输出一个字符,返回值为ostream类型,可实现链式编程

示例:

  1 int main()
  2 {
  3     char str[] = "programming with with C++";
  4     for(unsigned int i = 0;i 

程序运行结果:

(C/C++学习)3.C++中cin的成员函数


本文名称:(C/C++学习)3.C++中cin的成员函数
本文网址:http://cdxtjz.cn/article/gdcigc.html

联系我们

您好HELLO!
感谢您来到成都网站建设公司,若您有合作意向,请您为我们留言或使用以下方式联系我们, 我们将尽快给你回复,并为您提供真诚的设计服务,谢谢。
  • 电话:028- 86922220 18980695689
  • 商务合作邮箱:631063699@qq.com
  • 合作QQ: 532337155
  • 成都网站设计地址:成都市青羊区锣锅巷31号五金站写字楼6楼

小谭建站工作室

成都小谭网站建设公司拥有多年以上互联网从业经验的团队,始终保持务实的风格,以"帮助客户成功"为已任,专注于提供对客户有价值的服务。 我们已为众企业及上市公司提供专业的网站建设服务。我们不只是一家网站建设的网络公司;我们对营销、技术、管理都有自己独特见解,小谭建站采取“创意+综合+营销”一体化的方式为您提供更专业的服务!

小谭观点

相对传统的成都网站建设公司而言,小谭是互联网中的网站品牌策划,我们精于企业品牌与互联网相结合的整体战略服务。
我们始终认为,网站必须注入企业基因,真正使网站成为企业vi的一部分,让整个网站品牌策划体系变的深入而持久。