getline与get函数的差别

get()函数相对getline来说用法要灵活的多了。

1.   int get()是指从流中抽取单个字符并返回,这个是没有参数的形式。因为c++不像c语言使用getchar()

2.istream
&get(char*,int ,char)是指从流中抽取字符直到终止符(默认是\n)或者抽取字符达到第二个参数给定的数量或者已到文件末尾,将其存储在第一个参数指定的字符数组里;

3.istream &get(char &)是指从流中抽取单个字符并存入引用变量中;

4.istream &get(streambuf &,char)是指从流中取的字符存入streambuf 对象,直到终止符或文件末尾.。

对比getline我们是采用对比

istream &getline(char*,int ,char)的形式的。

二者的主要差别是当get()函数遇到限定符时候是不读取限定符的,是将其留在流的,而getline()是读取限定符的,但是却不显示的。

#include<iostream>
using namespace std;
int main()
{
	char  buf[100]={0};
	char sx;
	cin.get(buf,100,'#');
	cout<<buf<<endl;
	cin.clear();
	sx=cin.get();
	cout<<sx<<endl;
	return 0;
}

#include<iostream>
using namespace std;
int main()
{
	char  buf[100]={0};
	char sx;
	cin.getline(buf,100,'#');
	cout<<buf<<endl;
	cin.clear();
	sx=cin.get();
	cout<<sx<<endl;
	return 0;
}

我们可以看到我们用get返回用get(,,)与getline(,,)读取之后的流之后,我们发现get(,,)返回的是限定符‘#’,而getline则是返回限定之后的回车符号。回车按键是我们输入之后让程序执行的时候输入的。在c语言当中我们会采用getchar()来扔掉流中的这个回车

时间: 2024-11-09 06:38:25

getline与get函数的差别的相关文章

js new一个函数和直接调用函数的差别

用new和调用一个函数的差别:假设函数返回值是一个值类型(Number.String.Boolen)时,new函数将会返回这个函数的实例对象.而假设这个函数的返回值是一个引用类型(Object.Array.Funtion)时,new函数和直接调用函数的结果同样.測试代码例如以下: <script type="text/javascript"> /*//工厂模式 function Person(name,age) { var o = new Object(); o.name

exit()子程序终止函数与return()函数的差别

在main函数中我们通常使用return (0);这样的方式返回一个值. 但这是限定在非void情况下的也就是void main()这样的形式. exit()通常是用在子程序中用来终结程序用的,使用后程序自动结束跳会操作系统. 但在假如把exit用在main内的时候无论main是否定义成void返回的值都是有效的,并且exit不需要考虑类型,exit(1)等价于return (1) //程序作者:管宁 //站点:www.cndev-lab.com //所有稿件均有版权,如要转载,请务必闻名出处和

[转载]cin、cin.get()、cin.getline()、getline()、gets()函数的用法

1.cin>>           用法1:最基本,也是最常用的用法,输入一个数字: #include <iostream>using namespace std;main (){int a,b;cin>>a>>b;cout<<a+b<<endl;} 输入:2[回车]3[回车]输出:5 用法2:接受一个字符串,遇“空格”.“TAB”.“回车”都结束 #include <iostream>using namespace st

C++ STL map B1044/A1100.火星数字(读取带空格的string : 使用getline(cin,str)函数)

用了打表的技巧 #include <bits/stdc++.h> #include<math.h> #include <string> using namespace std; const int maxn = 40010;//最大学生人数 //[0,12]的火星文 string unitDigit[13] = {"tret","jan","feb","mar","apr"

getline函数(精华版)

在我的印象中,getline函数经常出现在自己的视野里,模糊地记得它经常用来读取字符串 .但是又对它的参数不是很了解,今天又用到了getline函数,现在来细细地总结一下: 首先要明白设计getline函数的目的,其实很简单,就是从流中读取字符串.而且读取的方 式有很多,包括根据限定符,根据已读取的字符的个数.从这个函数的名称来看,它的直观 意义是从流中读取一行,但是大家不要被这表面的现象所迷惑.其实如果让我来为这个函数 去一个名字的话,或许我会取一个getString,因为它的目的本来就是从流

getline函数

在我的印象中,getline函数常常出如今自己的视野里,模糊地记得它常常常使用来读取字符串 .可是又对它的參数不是非常了解,今天又用到了getline函数,如今来细细地总结一下: 首先要明确设计getline函数的目的,事实上非常easy,就是从流中读取字符串.并且读取的方 式有非常多,包含依据限定符,依据已读取的字符的个数.从这个函数的名称来看,它的直观 意义是从流中读取一行,可是大家不要被这表面的现象所迷惑.事实上假设让我来为这个函数 去一个名字的话,也许我会取一个getString,由于它

关于函数getline()(简单注意事项,不懂你怼我!!!)

关于getline()函数好使但是有毒: 有两种操作需要进行特殊处理: First: #include <iostream>#include <cstring>#include <cstdio>#include <algorithm> #include <sstream> using namespace std; int n; int a[100]; int b[100],c[100]; int main() { while (cin>&g

AfxMessageBox和MessageBox差别

假设用MFC的话,请尽量使用afxmessagebox,由于这个全局的对话框最安全,也最方便.   可是在WIN32 SDK的情况下仅仅能使用MESSAGEBOX. MessageBox()是Win32API函数.后者是mfc中的全局函数.在MFC中能用MessageBox()的地方都能用AfxMessageBox(). afxmessagebox很多其它的时候是用于调试AfxMessageBox 比 MessageBox 方便!    MessageBox 比 AfxMessageBox 灵活

友元函数友元类.

友元能够理解为是类的"朋友".它能够訪问类的保护和私有成员.友元的作用在于提高程序的执行效率,可是,它破坏了类的封装性和隐藏性.友元能够是一个函数,该函数被称为友元函数:友元也能够是一个类,该类被称为友元类. 一.友元函数 友元函数是在类外定义的一个函数,不是类的成员函数. 这个函数能够是普通的C++函数,或者是其它类的成员函数.即普通友元函数和友元成员函数.友元函数是定义在类外部.但须要在类体内进行说明,为了与该类的成员函数加以差别.在说明时前面加以keywordfriend.友元函