首页 > 代码库 > getline与get函数的差别
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()来扔掉流中的这个回车
getline与get函数的差别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。