C ++ getline()是一个标准库函数,用于从输入流中读取字符串或行。它是<string>标头的一部分。getline()函数从输入流中提取字符,并将其附加到字符串对象,直到遇到定界字符。这样做时,先前在字符串对象str中存储的值将被输入字符串替换(如果有)。


getline()函数可以两种方式表示:

句法:

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

参数:

is:它是istream类的对象,并告诉函数有关从何处读取输入流的流。

str:这是一个字符串对象,从流中读取输入后,将输入存储在此对象中。

delim:是分隔字符,它告诉函数在达到该字符后停止读取进一步的输入。

返回值:该函数返回相同的输入流作为IS被接受为参数。

句法:

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

第二个声明与第一个声明几乎相同。唯一的区别是,后者具有分隔符,默认情况下为新行(\ n)字符。

参数:

是:它是istream类的对象,并告诉函数有关从何处读取输入流的流。

str:这是一个字符串对象,从流中读取输入后,将输入存储在此对象中。

返回值:该函数返回相同的输入流作为IS被接受为参数。

下面的程序演示了getline()函数的工作:

getline函数用法(c中getline的格式及用法)(1)

示例2:我们可以使用getline()函数根据字符分割句子。

getline函数用法(c中getline的格式及用法)(2)

警告:此函数将换行符或('\ n')字符视为分隔符,并且换行符是该函数的有效输入。

在C ++中,流类支持面向行的函数getline()和write()分别执行输入和输出函数。getline()函数读取以新行结尾或直到达到最大限制的整行文本。getline()是istream类的成员函数,语法如下:

//(缓冲区,stream_size,定界符)istream&getline(char *,int size,char ='\ n')//分隔符被视为'\ n'istream&getline(char *,int size)

该功能执行以下操作:

1.提取字符直至分隔符。

2.将字符存储在缓冲区中。

3.提取的最大字符数为大小–1。

请注意,终止符(或定界符)可以是任何字符(例如'',','或任何特殊字符等)。读取终止符,但不将其保存到缓冲区中,而是将其替换为空字符。

getline函数用法(c中getline的格式及用法)(3)

在上面的程序中,语句cin.getline(str,20)读取一个字符串,直到遇到换行符或最大字符数(此处为20)。尝试使用具有不同限制的功能,然后查看输出。

本期的知识分享就到这里了,希望对大家有帮助~