zoukankan      html  css  js  c++  java
  • getline与get函数的区别

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

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

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

        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()来扔掉流中的这个回车




  • 相关阅读:
    Algs4-2.2.1给出原地归并排序merge的排序过程
    Algs4-2.2.2给出自顶向下归并排序的排序过程
    Algs4-2.1.38不同类型的元素
    Algs4-2.1.36不均匀的数据
    Algs4-2.1.37部分有序
    Algs4-2.1.35不均匀的概率分布
    Algs4-2.1.34罕见情况
    升级python到2.7版本pip不可用
    随机验证码
    python文件操作
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5076960.html
Copyright © 2011-2022 走看看