C++中本质上有两种壹执慵驾getline函数,一种在头文件<istream>中,是istream类的芤晟踔肿成员函数。一种在头文件<string>中,是普通函数。
在<istream>中的getline函数有两种重载形式:
istream&getline(char*s,streamsizen);
istream&getline(char*s,streamsizen,chardelim);
作用是从istream中读取至多n个字符保存在s对应的数组中。即使还没读够n个字符,如果遇到换行符'\n'(第一种形式)或delim(第二种形式),则读取终止,'\n'或delim都不会被保存进s对应的数组中。
在<string>中的getline函数有四种重载形式:
istream&getline(istream&is,string&str,chardelim);istream&getline(istream&&is,
string&str,chardelim);istream&getline(istream&is,string&str);
istream&getline(istream&&is,string&str);
用法和上一种类似,不过要读取的istream是作为参数is传进函数的。读取的字符串保存在string类型的str中。
扩展资料:
getline不是C库函数,而是gcc的扩展定义或者C++库函数。它会生成一个包含一串从输入流读入的字符的字符串,直到以下情况发生会导致生成的此字符串结束。
1)到文件结束,
2)遇到函数的定界符,
3)输入达到最大限度。
参考资料: