C++中cin.getline()和getline()函数的区别小结

前言

C++输入过程中,是把输入加载到缓冲区中,然后对缓冲区中的字符进行读取。cin,cin.get(),cin.getline()三个函数虽然都可以进行舒服读取,但是它们对缓冲区内的数据处理方法是不同的(如遇到【space】、【enter】的处理方法)。本文简单介绍cin.getline()和getline()函数的区别。

cin.getline():

用法:接收一个字符串,可以接收空格并输出,需包含#include< cstring >

char m[20];
cin.getline(m,5);
cout<<m<<endl;

输入:jkljkljkl

输出:jklj

接收5个字符到m中,其中最后一个为'\0',所以只看到4个字符输出;

延伸:

1、cin.getline()实际上有三个参数,cin.getline(接收字符串的变量,接收字符个数,结束字符)

2、当第三个参数省略时,系统默认为'\0'

3、如果将例子中cin.getline()改为cin.getline(m,5,‘a');当输入jlkjkljkl时输出jklj,输入jkaljkljkl时,输出jk

getline():

getline()函数是一个比较常见的函数。根据名字直接望文生义,就知道这个函数是来完成读入一行数据。

getline是C++标准库函数;但不是C标准库函数,getline会生成一个包含一串从输入流读入的字符的字符串,直到以下情况发生会导致生成的此字符串结束。1)到文件结束,2)遇到函数的定界符,3)输入达到最大限度。

用法:接收一个字符串,可以接收空格并输出,需包含#include< cstring >

string str;
getline(cin,str);
cout<<str<<endl;

输入:jkljkljkl

输出:jkljkljkl

输入:jkl jfksldfj jklsjfl

输出:jkl jfksldfj jklsjfl

总结

到此这篇关于C++中cin.getline()和getline()函数区别的文章就介绍到这了,更多相关C++ cin.getline()和getline()函数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C++中getline()和get()的方法浅析

    最原始的方法: 获取输入流最原始的形式就是cin>>(type) ,但是这种形式在碰到输入中有空格.制表符或者换行符的时候就会中断,值得注意的是中断后空格.制表符或者换行符还继续留在输入流中.所以最简单的,我们无法使用cin>>(type)的形式来读取包含空格的字符串,比如输入流中有一句:How are you?使用cin>>(type)是无法一次性读取出来的,鉴于此,getline()方法和get()方法便诞生了. getline()方法: getline()方法读取

  • C++的get()函数与getline()函数使用详解

    C++ get()函数读入一个字符 get()函数是cin输入流对象的成员函数,它有3种形式:无参数的,有一个参数的,有3个参数的. 1) 不带参数的get函数 其调用形式为 cin.get() 用来从指定的输入流中提取一个字符(包括空白字符),函数的返回值就是读入的字符. 若遇到输入流中的文件结束符,则函数值返回文件结束标志EOF(End Of File),一般以-1代表EOF,用-1而不用0或正值,是考虑到不与字符的ASCII代码混淆,但不同的C ++系统所用的EOF值有可能不同. [例]

  • C++中getline()的用法详解

    getline()用法 getline是C++标准库函数:它有两种形式,一种是头文件< istream >中输入流成员函数:一种在头文件< string >中普通函数: 它遇到以下情况发生会导致生成的本字符串结束: (1)到文件结束,(2)遇到函数的定界符,(3)输入达到最大限度. 输入流成员函数getline() 函数语法结构: 在< istream >中的getline()函数有两种重载形式: istream& getline (char* s, strea

  • C++ cin.getline及getline()用法详解

    下面先看下C++ cin.getline用法,具体内容如下所示: 使用 C++ 字符数组与使用 string 对象还有另一种不同的方式,就是在处理它们时必须使用不同的函数集.例如,要读取一行输入,必须使用 cin.getline 而不是 getline 函数.这两个的名字看起来很像,但它们是两个不同的函数,不可互换. 与 getline 一样,cin.getline 允许读取包含空格的字符串.它将继续读取,直到它读取至最大指定的字符数,或直到按下了回车键.以下是其用法示例: cin.getlin

  • C++中getline()、gets()等函数的用法详解

    在学习C++的过程中,经常会遇到输入输出的问题,以下总结一下下面几个函数的用法: 1).cin 2).cin.get() 3).cin.getline() 4).getline() 5).gets() 1.cin>> 用法1:最基本,也是最常用的用法,输入一个数字: #include <iostream> using namespace std; main () { int a,b; cin>>a>>b; cout<<a+b<<end

  • 基于C++ cin、cin.get()、cin.getline()、getline()、gets()函数的使用详解

    1.cin 2.cin.get() 3.cin.getline() 4.getline() 5.gets() 6.getchar() 附:cin.ignore();  cin.get()//跳过一个字符,例如不想要的回车,空格等字符 1.cin>>          用法1:最基本,也是最常用的用法,输入一个数字: #include <iostream> using namespace std; main () {    int a,b;    cin>>a>&g

  • oracle中 procedure(存储过程)和function(函数)本质区别

    Oracle function里面是可以允许有DML语句的,但是不能在查询的时候使用. 我们常用的function如: select max(a) from table ; 这种调用方式是不能执行带有DML的FUNCTION的. 但是如果不用在SQL里面是可以有的 比如 dbms_output.put_line(func(...));   如果函数里面采用自治事务,是可以有DML 的. 什么是"自治事务": 自治事务是可以在其他事务中调用的独立事务. 自治事务可以使事务离开调用事务的上

  • python中sort sorted reverse reversed函数的区别说明

    sort()是可变对象(字典.列表)的方法,无参数,无返回值,sort()会改变可变对象,因此无需返回值. sort()方法是可变对象独有的方法或者属性,而作为不可变对象如元组.字符串是不具有这些方法的,如果调用将会返回一个异常. 代码如下: >>> a=[5,4,3,2,1] >>> a.sort() >>> [1, 2, 3, 4, 5] >>> a >>> [1, 2, 3, 4, 5] sorted()是py

  • Numpy中的shape、reshape函数的区别

    目录 1 shape()函数 2 reshape()函数 1 shape()函数 读取矩阵的长度,比如shape[0]就是读取矩阵第一维度的长度,相当于行数.它的输入参数可以是一个整数表示维度,也可以是一个矩阵.shape函数返回的是一个元组tuple,表示数组(矩阵)的维度/ 形状,例子如下: w.shape[0]返回的是w的行数 w.shape[1]返回的是w的列数 df.shape():查看行数和列数 1. 数组(矩阵)只有一个维度时,shape只有shape[0],返回的是该一维数组(矩

  • C++中cin.getline()和getline()函数的区别小结

    前言 C++输入过程中,是把输入加载到缓冲区中,然后对缓冲区中的字符进行读取.cin,cin.get(),cin.getline()三个函数虽然都可以进行舒服读取,但是它们对缓冲区内的数据处理方法是不同的(如遇到[space].[enter]的处理方法).本文简单介绍cin.getline()和getline()函数的区别. cin.getline(): 用法:接收一个字符串,可以接收空格并输出,需包含#include< cstring > char m[20]; cin.getline(m,

  • PHP中explode函数和split函数的区别小结

    一.前言 之所以做这个,是因为这两个函数的作用很像,都是把字符串转换成数组. 二.explode 从下面的例子可以看出,生成的数组是有对应的顺序的. $pizza = "piece1 piece2 piece3 piece4 piece5 piece6"; $pieces = explode(" ", $pizza); echo $pieces[0]; // piece1 echo $pieces[1]; // piece2 // 示例 2 $data = &quo

  • SQL中where子句与having子句的区别小结

    前言: Where和Having都是对查询结果的一种筛选,说的书面点就是设定条件的语句.下面这篇文章就来给大家介绍下SQL中where子句与having子句的区别,下面话不多说了,来一起看看详细的介绍吧 1.where 不能放在GROUP BY 后面 2.HAVING 是跟GROUP BY 连在一起用的,放在GROUP BY 后面,此时的作用相当于WHERE 3.WHERE 后面的条件中不能有聚集函数,比如SUM(),AVG()等,而HAVING 可以 Where和Having都是对查询结果的一

  • c++中cin/cout与scanf/printf的区别比较

    cin .cout 基本说明: cin代表标准输入设备,使用提取运算符 ">>" 从设备键盘取得数据,送到输入流对象cin中,然后送到内存. cin是输入流,cout是输出流,重载了">>"."<<"运算符,包含在头文件<iostream>中. 先把要输出的东西存入缓冲区,再输出,导致效率降低,cin是自动判断你的变量类型,比如一个char数据只能用默认的char方法取数据. scanf .prin

  • JS中的substring和substr函数的区别说明

    1. 在JS中函数声明: stringObject.substring(start,stop) start是在原字符串检索的开始位置,stop是检索的终止位置,返回结果中不包括stop所指字符. 如:"hamburger".substring(4,8) returns "urge" 2. substr(start,length) 如:当DETAIL_TYPE 的值为1111053 时, substr(DETAIL_TYPE,1,6) = 111105 从DETAIL

  • C++ 中exit(),_exit(),return,abort()函数的区别

    exit()函数与_exit()函数及return关键字的区别: exit()和_exit()函数都可以用于结束进程,不过_exit()调用之后会立即进入内核,而exit()函数会先执行一些清理之后才会进入内核,比如调用各种终止处理程序,关闭所有I/O流等,我建议直接在Linux的终端中查看man手册,手册的内容是最官方的,而且不会有错,手册的英文是为全世界的程序员做的,所以手册的英语不会难. 1. 实例代码: #include <unistd.h> void _exit(int status

  • jQuery中bind与live的用法及区别小结

    首先介绍这两个方法之前,我们常用的是click()方法 复制代码 代码如下: $("a").click(function() {     alert("hello");}); click()方法是bind()方法的一种简单方法.在bind()中,jQuery所有JavaScript事件对象,比如focus, mouseover,和resize,都是可以作为type参数传递进来的. 参数:type,[data],function(eventObject)例如: 复制代

随机推荐