解析C++中get()和getline()的区别(一)

开发 后端
本文介绍的是C++中两个函数的使用区别,分别是get()和getline()。希望对大家有帮助,一起来看。

下面通过例子为大家介绍C++get()和getline()的区别。

问题一:

#include <iostream>   
#include <string>   
using namespace std;   
void main(void)   
{   
string st ;   
cout<<"Input st:";   
getline(cin,st);   
cout<<st<<endl;   
}  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

 

上面这段代码,如果输入abc,那么需要按两次回车键才能显示abc(在VC6中),因为getline有三个参数,第三个参数是字符串的结束符,也就是当getline遇到这个结束符时,就不在接受输入了,比如写成 getline(cin,st,'s'); 即使输入的是abcsabc 那么也只会显示 abc ,因此对于上面出现的情况,有人说getline默认情况下以回车('\n')作为结束符,第一次按回车表示字符串结束,第二次按回车才开始输出。也有人说这是VC6的bug,我觉得前一种解释比较合理,因为:

如果你输入abc(回车)abc,那么程序会显示abc,可见回车的确是函数默认的结束符。同理:

getline(cin,candybar.pinpai);  
  • 1.

 

就是当输入一串字符串后赋值给candybar.pinpai,然后再按二次回车才显示在屏幕上!

问题二:

1.cin.getline是读入一行字符,比如:

#include <iostream.h>   
void main()   
{   
char str[20];   
cout<<"Input :";   
cin.getline(str,20);   
cout<<str<<endl;   

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

当输入:abd cdrasdf g的时候就会输出:abd cdrasdf g。

2.cin.get()第一个用法,是读入一个字符。

#include <iostream.h>   
void main()   
{   
char str;   
cout<<"Input :";   
str=cin.get();   
cout<<str<<endl;   
}  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

当你输入“ABAF”的时候,只会显示“A”,因为只读入了一个字符(空格也可以读入)。

3.cin.get()第二个用法,也是输入一行(同cin.getline()),但是区别就是,不输出分隔符。

希望通过以上内容的介绍,能够给你带来帮助。

 

责任编辑:于铁 来源: 互联网
相关推荐

2011-07-20 17:48:07

C++

2011-04-11 09:43:25

C++C

2023-09-12 07:38:36

C++getline函数

2010-02-06 14:40:50

C++初始化和赋值

2024-06-28 10:04:09

2009-06-29 18:32:30

Hibernate

2011-04-06 08:57:07

C++java多态

2020-06-17 12:22:44

C覆盖重载

2022-07-01 11:56:54

C语言C++编程语言

2024-04-09 08:57:25

SizeofC++字符串

2009-06-26 16:23:12

Hibernate gHibernate l

2023-09-22 22:49:15

C++重载重写

2010-01-28 15:22:12

C++嵌套类

2011-06-08 11:02:14

GetPost

2024-02-21 23:13:45

C++编程开发

2011-06-21 15:00:07

JAVAC++

2009-10-22 09:17:16

C++ CLR

2010-01-28 14:38:36

C++和C#、Java

2011-07-13 18:00:51

CC++VC

2009-10-10 14:40:03

C++中struct
点赞
收藏

51CTO技术栈公众号