c++中的两种getline用法详解

C++中的两种getline用法详解

在C++中,getline函数是一个十分常用的函数,它的作用是从输入流中读取一行数据并存放到一个string类型的变量中。但实际上,C++中有两种不同的getline函数使用方式,这里将对它们进行详细讲解。

getline(istream& is, string& str)

这种用法是getline函数的最基本用法,它的函数原型如下:

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

它的作用是从输入流is中读取一行数据,存放到str对应的string类型变量中,直到读取到换行符或文件结束符EOF为止。如果成功读取到数据,则返回输入流is的引用;否则,返回NULL

以下代码展示了如何使用getline(istream& is, string& str)函数,从标准输入中读取一行数据并打印输出:

#include <iostream>
using namespace std;

int main()
{
    string str;
    getline(cin, str);
    cout << str << endl;

    return 0;
}

上述代码首先定义了一个string类型的变量str,然后调用getline函数从标准输入流cin中读取一行数据,将数据存放到str对应的string类型变量中,并打印输出。

运行程序后,我们可以输入一行数据并回车,该程序将会输出我们输入的那行数据。

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

这种用法是在基本用法的基础上增加了一个参数,即限定读取数据的分隔符。它的函数原型如下:

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

它的作用是从输入流is中读取一行数据,存放到str对应的string类型变量中,直到读取到指定的分隔符delim或文件结束符EOF为止。如果成功读取到数据,则返回输入流is的引用;否则,返回NULL

以下代码展示了如何使用getline(istream& is, string& str, char delim)函数,从标准输入中以逗号分隔的形式读取三个单词,并打印输出:

#include <iostream>
#include <sstream>
#include <string>

using namespace std;

int main()
{
    string input;
    getline(cin, input);

    stringstream ss(input);
    string word;
    while (getline(ss, word, ','))
    {
        cout << word << endl;
    }
    return 0;
}

上述代码首先定义了一个名为input的string类型变量,然后通过getline(cin, input)从标准输入中读取一行数据,存放到input中。接着,将输入的数据放入一个stringstream对象ss中,使用getline函数读取其中的单词,并以逗号为分隔符进行划分。

运行程序后,我们可以输入三个单词,以逗号分隔,程序将会按照逗号进行划分,并将三个单词打印输出。

总结

C++中的getline函数是一个功能强大的函数,可根据需求选择不同的使用方式。基本用法适用于读取文本文件中的一行数据或从标准输入中读取一行数据,而带有分隔符的用法则适用于读取以特定分隔符分割的数据。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c++中的两种getline用法详解 - Python技术站

(0)
上一篇 2023年6月26日
下一篇 2023年6月26日

相关文章

  • golang接收get/post请求并返回json数据

    Golang 接收 GET/POST 请求并返回 JSON 数据 概述 Golang 是一门快速、安全,易于使用的程序语言,它被广泛地用于Web和网络编程领域。本文将详细介绍如何使用 Golang 编写一个能够接收 HTTP GET/POST 请求并返回 JSON 数据的 Web 服务器。 准备工作 在开始编写代码之前,需要确保工作环境已经准备就绪。我们需要…

    其他 2023年3月28日
    00
  • 【用户不在sudoers文件中】问题解决

    当用户在 Linux 系统中执行需要管理员权限的命令时,可能会遇到“用户不在sudoers文件中”的错误。这是因为该用户没有被授权执行 sudo 命令的权限。本文将提供两种解决问题的方法,并提供示例说明。 方法一:将用户添加到 sudoers 文件中 sudoers 文件是 Linux 系统中用于授权用户执行 sudo 命令的文件。可以通过编辑该文件,将用户…

    other 2023年5月9日
    00
  • 详解阿里云服务器添加安全组规则(图文教程)

    当你在使用阿里云服务器时,进行端口映射或者配置安全策略时需要添加安全组规则,这可以帮助你加强防火墙的安全性,允许或者拒绝特定IP地址、端口或者协议访问云服务器。下面是详解阿里云服务器添加安全组规则的完整攻略: 1. 登录阿里云官网 首先,打开浏览器,进入阿里云官网,登录自己的账户。在阿里云控制台页面中找到“安全管理”和“网络与安全”两个入口,点击“安全组配置…

    other 2023年6月27日
    00
  • 服务器授权模式每服务器同时连接数与每设备或每用户的区别小结

    服务器授权模式是指在服务器端限制客户端连接的数量,可以分为每服务器同时连接数和每设备或每用户连接数两种模式。它们的区别如下: 每服务器同时连接数 每服务器同时连接数是指在一个服务器上限制客户端的连接数量。在此模式下,对于同一IP地址的所有设备或用户,如果它们发起的连接数超过了限制,就会被服务器拒绝连接。每服务器同时连接数适用于需要限制客户端总连接数的场景,如…

    other 2023年6月27日
    00
  • 如何下载网页上的视频 (以goole浏览器为例)

    如何下载网页上的视频(以Google浏览器为例) 如果你想下载网页上的视频,以下是一些简单的步骤,以Google浏览器为例: 打开Google浏览器并导航到包含你想下载视频的网页。 在网页上找到视频元素。通常,视频会以嵌入的形式出现在网页上,你可以在页面上找到一个播放按钮或视频框。 右键点击视频元素,然后选择“检查”(Inspect)。这将打开浏览器的开发者…

    other 2023年8月4日
    00
  • 尝试写一写4gl与4fd

    4GL与4FD的完整攻略 4GL和4FD是两种常见的编程语言,用于开发企业级应用程序。本文将为您提供一份详细的4GL与4FD的完整攻略,包括4GL和4FD的基本概念、4GL和4FD的区别、4GL和4FD的示例和使用4GL和4FD的注意事项。 4GL和4FD的基本概念 4GL和4FD是两种常见的编程语言,用于开发企业级应用程序。4GL是第四代编程语言,主要用于…

    other 2023年5月5日
    00
  • AndroidStudio实现能在图片上涂鸦程序

    Android Studio实现能在图片上涂鸦程序攻略 1. 准备工作 在开始编写涂鸦程序之前,确保你已经完成以下准备工作:- 安装Android Studio,并确保其正常运行。- 创建一个新的Android项目,并设置好相关的配置。 2. 添加涂鸦功能 2.1 导入涂鸦库 在项目的build.gradle文件中,添加以下依赖项: dependencies…

    other 2023年9月7日
    00
  • mysql数据库表增添字段,删除字段,修改字段的排列等操作

    Mysql数据库表增添字段的操作 在已经创建的表中增加新的字段,使用 ALTER TABLE 语句,对于需要增加的字段,需要指定字段名称、数据类型、长度等信息。 mysql ALTER TABLE table_name ADD new_column_name column_definition; 示例: 在 users 表中添加 phone 字段,数据类型为…

    other 2023年6月25日
    00
合作推广
合作推广
分享本页
返回顶部