istream& getline ( istream &is , string &str , char delim );istream& getline ( istream& , string& );is 进行读入操作的输入流str 存储读入的内容delim 终结符
getline_GetLine -简述
返回值
与参数is是一样的
功能
将输入流is中读到的字符存入str中,直到遇到终结符delim才结束。对于第一个函数delim是可以由用户自己定义的终结符;对于第二个函数delim默认为 'n'(换行符)。
函数在输入流is中遇到文件结束符(EOF)或者在读入字符的过程中遇到错误都会结束。
在遇到终结符delim后,delim会被丢弃,不存入str中。在下次读入操作时,将在delim的下个字符开始读入。
举例:
输入为:aa#b
输出为:aa b
再举例:
getline
操作1:
操作1
这里输入流实际上只读入了Nice to meet you!,#后面的Hello!并没有存放到line中(仍停留在输入缓冲区里)。
而且这里把终止符设为#,你输入的时候就算输入几个回车换行也没关系,输入流照样会读入,譬如:
操作2:
操作2
这里,输入中的换行照样被读入到输入流中并且输出了。
(“再举例”部分的源代码在visual studio 中编译通过,操作1、2也是在该环境下进行的。)
注意
这个getline是个全局函数,而不是istream/iostream的成员函数getline。
getline操作返回的是is(输入流),在使用while(getline(cin,line))的时候若想退出循环应使用EOF或ctrl+Z。
getline_GetLine -成员函数
getline也可以作为成员函数使用
cin.getline(char* cha,int num,char f);
向cha中输入num个字符,输入过程中达到num个数或者提前遇到f字符,输入结束。