新闻资讯
看你所看,想你所想

GetLine

GetLine

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
再举例:
getline()例程原始码getline()例程原始码
操作1:
操作1操作1
这里输入流实际上唯读入了Nice to meet you!,#后面的Hello!并没有存放到line中(仍停留在输入缓冲区里)。
而且这里把终止符设为#,你输入的时候就算输入几个回车换行也没关係,输入流照样会读入,譬如:
操作2:
操作2操作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字元,输入结束。

相关推荐

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:yongganaa@126.com