c++ getline()详解

这篇具有很好参考价值的文章主要介绍了c++ getline()详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

getline()函数在c++中有两种用法,第一种定义在 < i s t r e a m > <istream> <istream>头文件中,第二种定义在 < s t r i n g > <string> <string>头文件中。getline()在这两种用法中都是用于读入一行字符串,可以带空格等特殊字符,在第二种用法中getline的第一个参数传的是,比如:cin和stringstream
可以用getline和stringstream实现split(字符串的分割)
可以跳转到:c++ split 实现字符串分割
     ~~~~     

第一种用法

在<istream>的getline函数有两种重载形式

istream& getline (char* s, streamsize n );
istream& getline (char* s, streamsize n, char delim );

c++ api 说明

c++ getline()详解

通俗的讲: 从istream中读取至多n个字符(包含结束标记符)保存在s对应的数组中。即使还没读够n个字符,如果遇到delim标识符或字数达到限制,则读取终止。delim标识符会被读取,但是不会被保存进s对应的数组中。注意,delim标识符在指定最大字符数n的时候才有效。

#include<bits/stdc++.h>
using namespace std;
int main()
{
	char s1[100],s2[100];
	//输入的数据:aa,bb,cc
	//第一种重载
	cin.getline(s1,100);
	cout<<s1<<endl;//输出aa,bb,cc
	//第二种重载
	cin.getline(s2,100,',');
	cout<<s2<<endl;//输出aa
	cin.getline(s2,100,',');
	cout<<s2<<endl;//bb
	return 0;
}
第二种用法

在<string>中的getline函数有四种重载形式

istream& getline (istream&  is, string& str, char delim);
istream& getline (istream&& is, string& str, char delim);
istream& getline (istream&  is, string& str);
istream& getline (istream&& is, string& str);

c++ api 说明
c++ getline()详解
用法和上第一种类似,但是读取的istream是作为参数is传进函数的。读取的字符串保存在string类型的str中。

is:表示一个输入流,例如cin。
str:string类型的引用,用来存储输入流中的流信息。
delim:char类型的变量,所设置的截断字符;在不自定义设置的情况下,遇到’\n’,则终止输入。文章来源地址https://www.toymoban.com/news/detail-438110.html

#include<bits/stdc++.h>
using namespace std;
int main(){
    string str;
    //输入aa,bb,cc
    getline(cin,str);
    cout<<str<<endl;//aa,bb,cc
    getline(cin, str, ',');
    cout<<str<<endl;//aa
	return 0;
}

到了这里,关于c++ getline()详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • getline的使用详解

    getline函数与字符串所需要的头文件相同,需要在头文件#includestring中调用getline函数。 getline是C++标准库函数;它有两种形式,一种是头文件 istream 中输入流成员函数;一种在头文件 string 中普通函数; 它遇到以下情况发生会导致生成的本字符串结束: (1)到文件结束,(2)遇到函

    2024年01月18日
    浏览(28)
  • C++:ifstream通过getline读取文件会忽略最后一行空行

    getline是读取文件的常用函数,虽然使用简单,但是有一个较容易被忽视的问题,就是文件最后一行空行会被忽略。  假设文件abc.txt内容为 123 456 789 最后没有空行 运行程序输出: 1{123} 2{456} 3{789}  可以看到读到了3行完整的内容  假设文件abc.txt内容为 123 456 789 最后有一行空行

    2024年01月21日
    浏览(33)
  • pyqt中有connect用法的控件

    在PyQt中,以下控件可以使用connect方法进行信号与槽的连接: QPushButton:连接点击按钮的信号clicked QAction:连接菜单项或工具栏按钮的信号triggered QComboBox:连接选择项发生改变的信号currentIndexChanged QLineEdit:连接文本内容改变的信号textChanged QRadioButton:连接单选按钮状态切换

    2024年02月16日
    浏览(18)
  • 【Scipy优化使用教程】二、Scipy中有约束优化的两种算法

    参考官网:Scipy. 对于有约束的最小化问题, Scipy 提供的 minimize 这个包有三个: trust-constr , SLSQP\\\' 和 COBYLA 。它们要求使用稍微不同的结构来定义约束。 trust-constr 需要要求约束被定义成一系列的 LinearConstraint 和 NonlinearConstraint 两种类型。 SLSQP\\\' 和 COBYLA 需要要求约束条件被定义

    2024年02月02日
    浏览(34)
  • C++ sort()函数具体用法

    sort() 函数可以将一个容器或者数组的值进行排序,还可以自定义排序方式。 sort() 是基于头文件 algorithm 库下的一个函数,所以要调用 sort() ,就需要添加头文件。 一.正常排序 我们可以通过写 我们就可以将 arr 中从开始的元素到第5个元素按从小到大的顺序进行排序。 二.排序

    2024年02月06日
    浏览(31)
  • C++中memset函数的用法

    memset是 C++ 标准库中的一个函数,用于将内存块中的所有位都设置为指定的值。 它的原型如下: 这个函数接受三个参数: ptr  是指向要设置的内存区域的指针。 value  是要设置的值。这个值被转换为  unsigned char  类型,然后写入每个字节。 num  是要设置的字节数。 memset 函

    2024年02月07日
    浏览(31)
  • C++的rand()函数详细用法

    rand() 函数是C++标准库中的一个伪随机数生成器,它返回一个在0到 RAND_MAX 之间的整数,其中 RAND_MAX 是一个常量,通常定义为32767。由于 rand() 函数生成的随机数序列是固定的,因此在使用 rand() 函数之前,通常需要调用 srand() 函数初始化随机数种子。 srand() 函数接受一个无符号

    2024年02月15日
    浏览(44)
  • C++ Sleep函数详细介绍与用法

    这个函数就是让程序挂起一段时间,或者说是让程序暂停一段时间。 这个函数需要头文件: 如果是Linux的话则需要 如果是Windows的话则需要 用法: 就是在Sleep()中写上要暂停的毫秒数。 注意: Sleep()中的第一个字母S是大写。 并且1000毫秒=1秒 样例: 它们都用来进行线程控制

    2024年02月14日
    浏览(37)
  • 蛇行矩阵两种编程方法及详解(c++)

    蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。 本题有多组数据,每组数据由一个正整数N组成。(N不大于100) 对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。 方法一

    2024年02月06日
    浏览(14)
  • flush()函数用法详解

    最近在写一个小项目时用到了Java的序列化,在写入输出流时用到了 flush() 函数。网上搜了一下感觉讲的不是很详细,在此写一下自己的理解 先给出代码片段 在以上代码中我们用ObjectOutputStream 类用来序列化obj对象,并将该对象序列化到一个文件中。 我们给出了细微差别的两

    2024年02月05日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包