getline是C++标准库函数,但不是C标准库函。;是String类对象的成员函数,属于string IO成员操作,用于读取整行文本。getline会生成一个包含一串从输入流读入的字符的字符串,直到以下情况发生会导致生成的此字符串结束:
1到文件结束
2遇到函数的定界符
3输入达到最大限度。
getline(cin,str);
cin:输入流
str:string对象
符。
在函数遇到和结束定界符相等的字符时函数结束,同时函数抽出定界符,此种情况下该定界符既不被放回输入流,也不被放入要生成的字符串。所以由此可以理解输入结束后的第一个回车是定界符,被确认后抛弃,而第二个才是程序执行运行时正常需要的。
getline函数从输入流的下一行读取,读到终止符时会将'\0'存入结果缓冲区中,并保存读取的内容到str中,但不包括换行符。getline函数将istream参数作为返回值,和输入操作一样也把他用作判断条件一般表达式:
getline(char **lineptr, size_t *n, FILE *stream)
以上是本人学习过后的一点点看法,欢迎指正。