📅  最后修改于: 2023-12-03 14:40:05.630000             🧑  作者: Mango
cin.getline
在 C++ 中,cin.getline
是一种用于读取字符串的函数。它可以从标准输入流(例如键盘)中读取一行字符串,并将其存储在一个字符数组中。这个函数的命名来源于其能够获取一行(line)文本的能力。cin.getline
函数与 cin >>
函数相似,但是前者可以读取含有空格的字符串,而后者遇到空格便停止读取。
以下是 cin.getline
函数的语法:
cin.getline(char_array, array_size, delimiter);
在这里:
char_array
是一个字符数组,用于存储从输入流中读取的字符串。array_size
是 char_array
可以容纳字符串的最大长度(字符数量),包括空字符('\0')。delimiter
(可选)是一个字符,它表示输入终止的标志。默认情况下,这个标志是回车符('\n')。可以用其他字符来代替,例如 ';'
。#include <iostream>
using namespace std;
int main()
{
char str[20];
cout << "请输入您的名字:";
cin.getline(str, 20);
cout << "欢迎您," << str << "!" << endl;
return 0;
}
输出:
请输入您的名字:张三
欢迎您,张三!
在这个例子中,程序要求用户输入自己的名字,而名字可以包含空格。为了读取带有空格的字符串,这里使用了 cin.getline
函数。cout
函数随后输出欢迎消息,其中 str
变量包含了用户输入的文本。
getline
函数的第二个参数规定了字符数组的容量,函数不会为数组动态分配内存。因此,必须确认数组的大小足以存储预期的输入。getline
函数从输入流中删除,因此如果你需要读取一行完整的输入,应该将它放在第一次 getline
后面并且不带参数。这将读取前一个 getline
函数直到换行符的所有文本。getline
函数避免了 cin >>
函数中空格字符的问题,可以读取包含空格的完整行。例如,如果输入为 “C++ 英雄联盟”,getline
函数将读取完整字符串。与之相反,cin >>
函数只会读取 “C++”。