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;
}

getline与get函数的区别

#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;
}


getline与get函数的区别

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



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116550.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月19日 下午9:00
下一篇 2022年1月19日 下午9:00


相关推荐

  • C++面试题汇集

    1.在C++程序中调用被C编译器编译后的函数,为什么要加extern“C”?答:首先,extern是C/C++语言中表明函数和全局变量作用范围的关键字,该关键字告诉编译器,其声明的函数和变量可以

    2021年12月22日
    54
  • onbeforeunload事件_pageload事件何时触发

    onbeforeunload事件_pageload事件何时触发beforeunload事件简介当窗口,文档及其资源即将卸载时,将触发该事件。该文档仍然可见,此时事件仍可取消。如果为returnValueEvent属性分配了一个字符串,则会出现一个对话框,要求用户确认离开该页面(参见下面的示例)。IE浏览器在对话框中显示返回的字符串,但其他浏览器会显示自己的消息。如果未提供任何值,则以静默方式处理事件。注意:为了防止不需要…

    2025年8月16日
    5
  • 苹果绕id完美重启_iphone重启要输入id密码

    苹果绕id完美重启_iphone重启要输入id密码朋友捡到一个iphone6,已经很老的版本了,并且拆修过,手机没有关机等着人家来要,但是第二天就变成iphone已停用,估计别人也是觉得不值得找回了吧。手机就相当于是砖头了,然后交给我,让我尝试激活成功教程试试。在B站看了几个视频,发现网上有很多激活成功教程的软件,但是都是不能当电话用了,只能当做小pad用了,有的软件激活成功教程后不能关机重启,因为一旦关机重启就又锁上了,有的软件激活成功教程后不能登录iCloud,应该就是说不能登录AppID,不能登录应该就不能通过AppStore下载软件了吧。有的软件是通过删除基带的方式,这种方式据

    2026年2月14日
    4
  • 韩顺平 2021零基础学Java 学习笔记(1)(自用)[通俗易懂]

    韩顺平 2021零基础学Java 学习笔记(1)(自用)[通俗易懂]目录第2章Java概述第3章变量第4章运算符第5章程序控制结构第6章数组、排序和查找第7章面向对象编程(基础部分)第8章面向对象编程(中级部分)第2章Java概述2.1Java重要特点Java语言是面向对象的(oop)Java语言是健壮的。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证Java语言是跨平台性的。[即:一个编译好的.class文件可以在多个系统下运行,这种特性称为跨平台]Jav

    2022年10月10日
    5
  • matlab 循环矩阵_matlab循环输出数组

    matlab 循环矩阵_matlab循环输出数组MATLAB的矩阵求值的循环语句?clc;clearall;closeall;t0=[11];a=[12;34]t=t0;t(1,:)=t0’\an=10;fori=2:nt(i,:)=t(i-1,:)’\a;endtmatlab中的核矩阵for循环问题A(i,:)-A(j,:)表示A矩阵的第i行减去第j行,得到的是一个行向量;norm函数是取2范数,也就是向量的各项平方求和再开方.(因此我觉…

    2022年10月7日
    3
  • C++基础语法

    C++基础语法基础语法第一个程序#include<iostream>usingnamespacestd;intmain(){cout<<"H

    2021年12月13日
    54

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号