C++getline()是一个标准库函数,用于从输入流中读取字符串或行。它是<string>标头的一部分。getline()函数从输入流中提取字符,并将其附加到字符串对象,直到遇到定界字符。这样做时,先前在字符串对象str中存储的值将被输入字符串替换(如果有)。
getline()函数可以两种方式表示:
句法:
istream&getline(istream&is,string&str,chardelim);
参数:
is:它是istream类的对象,并告诉函数有关从何处读取输入流的流。
str:这是一个字符串对象,从流中读取输入后,将输入存储在此对象中。
delim:是分隔字符,它告诉函数在达到该字符后停止读取进一步的输入。
返回值:该函数返回相同的输入流作为IS被接受为参数。
句法:
istream&getline(istream&is,string&str);
第二个声明与第一个声明几乎相同。唯一的区别是,后者具有分隔符,默认情况下为新行(\n)字符。
参数:
是:它是istream类的对象,并告诉函数有关从何处读取输入流的流。
str:这是一个字符串对象,从流中读取输入后,将输入存储在此对象中。
返回值:该函数返回相同的输入流作为IS被接受为参数。
下面的程序演示了getline()函数的工作:
示例2:我们可以使用getline()函数根据字符分割句子。
警告:此函数将换行符或('\n')字符视为分隔符,并且换行符是该函数的有效输入。
在C++中,流类支持面向行的函数getline()和write()分别执行输入和输出函数。getline()函数读取以新行结尾或直到达到最大限制的整行文本。getline()是istream类的成员函数,语法如下:
//(缓冲区,stream_size,定界符)istream&getline(char*,intsize,char='\n')//分隔符被视为'\n'istream&getline(char*,intsize)
该功能执行以下操作:
1.提取字符直至分隔符。
2.将字符存储在缓冲区中。
3.提取的最大字符数为大小–1。
请注意,终止符(或定界符)可以是任何字符(例如'',','或任何特殊字符等)。读取终止符,但不将其保存到缓冲区中,而是将其替换为空字符。
在上面的程序中,语句cin.getline(str,20)读取一个字符串,直到遇到换行符或最大字符数(此处为20)。尝试使用具有不同限制的功能,然后查看输出。
本期的知识分享就到这里了,希望对大家有帮助~