掌握聚合最新动态了解行业最新趋势
API接口,开发服务,免费咨询服务

C++中getline()函数用法详解(定义、参数、实例)

getline() 是 C++ 标准库中的一个函数,用于从输入流中读取一行文本,并将其存储为字符串。它能够从标准输入、文件流、字符串流等不同类型的输入流中读取数据。本文将详细介绍 getline() 函数的定义、参数和实例应用

一、getline() 函数定义

getline() 函数在 C++ 标准库中有两种重载形式:

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

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

其中第二种形式更为常用,因为它可以直接读取到 string 对象中。

二、getline() 函数的参数

  1. is: 输入流对象,可以是 std::cin(标准输入)、文件流对象(std::ifstream)、字符串流对象(std::istringstream)等等。

  2. str: 存储读取到的一行文本的 string 对象。

  3. delim: 分隔符,表示在哪个字符处停止读取,默认为换行符 '
    '。当遇到此分隔符时,读取操作将终止。

返回值通常是输入流对象的引用,通常为 is,表示函数成功执行。

三、使用示例

以下是一些常见的使用示例,展示了如何使用 getline() 函数从不同的输入流中读取数据:

  1. 从标准输入中读取一行

#include 
#include 
using namespace std;
int main() {
    string line;
    cout << "Enter a line of text: ";
    getline(cin, line);
    cout << "You entered: " << line << endl;
    return 0;
}

在这个例子中,程序会等待用户输入一行文本,然后将其显示出来。

  1. 从文件中读取一行

#include 
#include 
#include 
using namespace std;
int main() {
    ifstream file("example.txt");
    string line;
    if (file.is_open()) {
        while (getline(file, line)) {
            cout << line << endl;
        }
        file.close();
    } else {
        cout << "Unable to open file." << endl;
    }
    return 0;
}

该程序从名为 "example.txt" 的文件中逐行读取内容并输出到标准输出。

  1. 从字符串流中读取一行

#include 
#include 
#include 
using namespace std;
int main() {
    istringstream ss("Hello World!
This is a new line.");
    string line;
    while (getline(ss, line)) {
        cout << line << endl;
    }
    return 0;
}

这个程序从字符串流中逐行读取内容并输出到标准输出。

四、注意事项

  1. getline() 在每次调用后会自动移动输入流的指针到下一行的开头,准备读取下一行文本。

  2. 与 cin 不同,getline() 可以读取空格和嵌入在行中的空格,因此非常适合用于处理包含空格的输入。

  3. 如果在使用 getline() 之前有使用 scanf() 等函数,可能需要用 getchar() 来读取前一个换行符,避免影响后续的输入。

C++中的getline()函数是一个功能强大的工具,适用于从各种输入流中读取整行数据。它不仅可以读取包括空格在内的整行文本,还提供了灵活的控制方式来处理不同的分隔符和最大字符数限制。在实际应用中,合理使用getline()可以简化数据处理流程,提高程序的可读性和可维护性。无论是处理用户输入、文件读取还是字符串流操作,getline()都是一个不可或缺的工具。

声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com

  • 涉农贷款地址识别

    涉农贷款地址识别,支持对私和对公两种方式。输入地址的行政区划越完整,识别准确度越高。

    涉农贷款地址识别,支持对私和对公两种方式。输入地址的行政区划越完整,识别准确度越高。

  • 人脸四要素

    根据给定的手机号、姓名、身份证、人像图片核验是否一致

    根据给定的手机号、姓名、身份证、人像图片核验是否一致

  • 个人/企业涉诉查询

    通过企业关键词查询企业涉讼详情,如裁判文书、开庭公告、执行公告、失信公告、案件流程等等。

    通过企业关键词查询企业涉讼详情,如裁判文书、开庭公告、执行公告、失信公告、案件流程等等。

  • IP反查域名

    IP反查域名是通过IP查询相关联的域名信息的功能,它提供IP地址历史上绑定过的域名信息。

    IP反查域名是通过IP查询相关联的域名信息的功能,它提供IP地址历史上绑定过的域名信息。

  • 人脸卫士

    结合权威身份认证的精准人脸风险查询服务,提升人脸应用及身份认证生态的安全性。人脸风险情报库,覆盖范围广、准确性高,数据权威可靠。

    结合权威身份认证的精准人脸风险查询服务,提升人脸应用及身份认证生态的安全性。人脸风险情报库,覆盖范围广、准确性高,数据权威可靠。

0512-88869195
数 据 驱 动 未 来
Data Drives The Future