C++ 中的 getline() 函数:从输入流读取文本

在 C++ 中,getline() 是一个函数,用于从输入流中读取一行文本。

getline() 函数有多个重载形式,其中最常用的形式是以下形式:

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

这个函数接受三个参数:

  • is:输入流对象,用于从中读取文本。
  • str:用于存储读取到的文本的字符串对象。
  • delim:可选参数,表示行结束的分隔符字符(默认为换行符 '\n')。

getline() 函数会从输入流 is 中读取字符,直到遇到行结束分隔符 delim 或文件结束符,然后将读取到的字符存储到字符串 str 中,直到达到最大字符数或遇到结束符为止。读取完成后,getline() 函数会返回输入流对象 is 的引用。

示例

以下是一个使用 getline() 函数的示例:

#include <iostream>
#include <string>

int main() {
    std::string str;
    std::cout << '请输入一行文本:';
    std::getline(std::cin, str);

    std::cout << '你输入的文本是:' << str << std::endl;
    return 0;
}

在上述示例中,使用 getline() 函数从标准输入流 std::cin 中读取一行文本,并将其存储到字符串 str 中。然后,输出读取到的文本。

处理行结束符

需要注意的是,getline() 函数会读取整行文本,包括行结束符(默认为换行符 '\n')。如果不想包含行结束符,可以使用 ignore() 函数来清除输入流中的行结束符。例如,可以在调用 getline() 函数之前添加以下代码:

std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');

上述代码会忽略输入流中的换行符,以确保下一次读取不受影响。

注意

需要注意的是,getline() 函数和 ignore() 函数在不同的输入流对象中可能具有不同的用法和行为。建议查阅相关输入流类的文档,以便了解具体的用法和用例。

C++ 中的 getline() 函数:从输入流读取文本

原文地址: https://www.cveoy.top/t/topic/QF1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录