码迷,mamicode.com
首页 > 其他好文 > 详细

getline与get函数的差别

时间:2014-09-18 18:56:04      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   os   使用   ar   文件   

     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;
}
bubuko.com,布布扣
#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;
}

bubuko.com,布布扣

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




getline与get函数的差别

标签:style   blog   http   color   io   os   使用   ar   文件   

原文地址:http://blog.csdn.net/zhouyelihua/article/details/39375765

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!