C++ 中的 getline() 函数:从输入流读取文本
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() 函数在不同的输入流对象中可能具有不同的用法和行为。建议查阅相关输入流类的文档,以便了解具体的用法和用例。
原文地址: https://www.cveoy.top/t/topic/QF1 著作权归作者所有。请勿转载和采集!