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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux下干净卸载mysql详解

    Linux下干净卸载mysql详解1、使用以下命令查看当前安装mysql情况rpm-qa|grep-imysql可以看到如下图的所示:显示之前安装了:MySQL-client-5.5.25a-1.rhel5MySQL-server-5.5.25a-1.rhel52、停止mysql服务、删除之前安装的mysql删除命令:rpm-e–nodeps包名rpm-evMySQL

    2022年6月16日
    77
  • 整理:Visual Studio Code (vscode) 配置C、C++环境/编写运行C、C++(主要Windows、简要Linux)

    现在是2019.7.21,由于这阵一直在忙,今天我用最新的VSCode(Version1.36.1)和最新的Cpp插件(version0.24.0)按照本文的安装步骤从零开始试了一下,由于vscode版本和cpp插件版本更新确实变化了很多,2019年7月21日更新的我会用这个颜色(粉色?)标示出来,供大家参考进行配置。也可以参考官方文档:https://code.visualstudio.c…

    2022年4月7日
    36
  • 高达起源the origin_idea找不到tomcat

    高达起源the origin_idea找不到tomcat“Theoriginserverdidnotfindacurrentrepresentationforthetargetresourceorisnotwillingtodisclosethatoneexists.”,在web开发的过程中,看到这一段错误提示,不管是在入门阶段还是已经是web老手都会感到很头痛。我也是在使用JSTL库的过程中,出现了这

    2022年10月14日
    4
  • 动态链接库(DLL)初始化例程失败_failed to load中文

    动态链接库(DLL)初始化例程失败_failed to load中文在importtensorflow时遇到以下报错:解决方案如下:1.官网上提到:因为TensorFlow1.6版本起,二进制文件使用AVX指令,这些指令可能无法在旧版CPU上运行,所以我们要看下CPU的指令集。可以使用CPU-Z这个软件来查看:注:该软件我已经放到公号上,读者可以在后台发送”cpu”获取下载链接。如果不支持,则可以考虑更换一台电话。支持的话请看方案二。2.官网同样提到:从TensorFlow2.1.0版开始,…

    2022年9月25日
    7
  • SMTP设置_搭建邮件服务器的方法

    SMTP设置_搭建邮件服务器的方法2019独角兽企业重金招聘Python工程师标准>>>…

    2022年10月4日
    3
  • robotium android,android自动化测试框架robotium配置和使用

    robotium android,android自动化测试框架robotium配置和使用背景介绍android开发过程中,每次迭代升级都需要去回归一下之前版本功能,看看最新的修改有没有影响到之前的正常功能。然而这个过程永远都是在做一些繁琐的重复的操作,大大浪费人力,所以我们决定使用自动化来做这个事情,这就引入了我们接下来要介绍的自动化测试框架——robotium。Robotium是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟…

    2022年7月17日
    13

发表回复

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

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