
GetLine
istream& getline ( istream &is , string &str , char delim );
istream& getline ( istream& , string& );
is 进行读入操作的输入流
str 存储读入的内容
delim 终结符
基本介绍
- 中文名:getline
- 别名:istream & getline
- 本质:全局函式
- 返回值:与参数is是一样的
- 领域:编程
- 退出循环:ctrl+Z
简述
返回值
与参数is是一样的
功能
将输入流is中读到的字元存入str中,直到遇到终结符delim才结束。对于第一个函式delim是可以由用户自己定义的终结符;对于第二个函式delim默认为 '\n'(换行符)。
函式在输入流is中遇到档案结束符(EOF)或者在读入字元的过程中遇到错误都会结束。
在遇到终结符delim后,delim会被丢弃,不存入str中。在下次读入操作时,将在delim的下个字元开始读入。
举例:
#include <string>//getline包含在string头档案里#include <iostream>using namespace std;int main(){ string str; getline(cin , str , '#'); char c = getchar(); cout << str << ' ' << c << endl; return 0;}
输入为:aa#b
输出为:aa b
再举例:

操作1:

这里输入流实际上唯读入了Nice to meet you!,#后面的Hello!并没有存放到line中(仍停留在输入缓冲区里)。
而且这里把终止符设为#,你输入的时候就算输入几个回车换行也没关係,输入流照样会读入,譬如:
操作2:

这里,输入中的换行照样被读入到输入流中并且输出了。
(“再举例”部分的原始码在visual studio 中编译通过,操作1、2也是在该环境下进行的。)
注意
这个getline是个全局函式,而不是istream/iostream的成员函式getline。
getline操作返回的是is(输入流),在使用while(getline(cin,line))的时候若想退出循环应使用EOF或ctrl+Z。
成员函式
getline也可以作为成员函式使用
cin.getline(char* cha,int num,char f);
向cha中输入num个字元,输入过程中达到num个数或者提前遇到f字元,输入结束。