C++ 中的 getline()函数和字符数组
C++ getline() 是一个标准库函数,用于从输入流中读取字符串或行。它是 < 字符串> 标头的一部分。 getline()函数从输入流中提取字符并将其附加到字符串对象,直到遇到分隔字符。必须阅读 C++ 中的 getline(字符串) 文章以获取更多详细信息。
在 C++ 中,流类支持面向行的函数,getline() 和 write() 分别执行输入和输出函数。
Getline字符数组:此函数读取以换行符结尾的整行文本或直到达到最大限制。 getline() 是 istream 类的成员函数。
句法:
// (buffer, stream_size, delimiter)
istream& getline(char*, int size, char='\n')
// The delimiter character is considered as '\n'
istream& getline(char*, int size)
参数:
- char*:指向数组的字符指针。
- 大小:充当定义数组大小的分隔符。
该函数执行以下操作:
- 提取字符直到分隔符。
- 将字符存储在缓冲区中。
- 提取的最大字符数为 size – 1。
Note: that the terminator(or delimiter) character can be any character (like ‘ ‘, ‘, ‘ or any special character, etc.). The terminator character is read but not saved into a buffer, instead it is replaced by the null character.
例如:
Input: Aditya Rakhecha
CPP
// C++ program to show the getline() with
// character array
#include
using namespace std;
// Driver Code
int main()
{
char str[20];
cout << "Enter Your Name::";
// see the use of getline() with array
// str also replace the above statement
// by cin >> str and see the difference
// in output
cin.getline(str, 20);
cout << "\nYour Name is:: " << str;
return 0;
}
输出
Your Name is:: Aditya Rakhecha
解释:在上述程序中,语句cin.getline(str, 20);读取一个字符串,直到遇到字符或最大字符数(此处为 20)。尝试具有不同限制的函数并查看输出。