GetLine


GetLine

文章插图
GetLineistream& 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的下个字元开始读入 。举例:【GetLine】#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再举例:
GetLine

文章插图
getline()例程原始码操作1:
GetLine

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

文章插图
操作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字元,输入结束 。