zoukankan      html  css  js  c++  java
  • C++getline()

    #include <iostream>
    #include <cstring>
    #include <string>
    using namespace std;
    int main()
    {
    string str;   
    char charr[20];
    cin.getline(charr,20);
    cout<<charr<<endl;
    getline(cin,str);
    cout<<str<<endl;
    return 0;
    } 1、两个函数虽然看上去名称相同都是getline,但它们却分属于不同的类中的成员函数。
    cin.getline(charr,20);的getline是输入流对象的成员函数,即istream::getline,使用时需头文件#include <iostream>
    getline(cin,str);的getline是string类对象的成员函数,即string::getline,使用时需头文件#include <string>,注意不是cstring
    2、string类的getline(cin,str);中第一个参数要求是一个输入流对象的引用,即istream&,第二个参数则是一个string类的对象。这里cin就是C++内部定义的一个全局的输入流对象,即extern istream cin,str是你定义的string类对象。

    原型
    istream& getline ( istream &is , string &str , char delim );
    istream& getline ( istream& , string& );
    参数
    is 进行读入操作的输入流
    str 存储读入的内容
    delim 终结符
    返回值
    与参数is是一样的
    功能
    将输入流is中读到的字符存入str中,直到遇到终结符delim才结束。对于第一个函数delim是可以由用户自己定义的终结符;对于第二个函数delim默认为 ' '(换行符)。
    函数在输入流is中遇到文件结束符(EOF)或者在读入字符的过程中遇到错误都会结束。
    在遇到终结符delim后,delim会被丢弃,不存入str中。在下次读入操作时,将在delim的下个字符开始读入。
    举例:
    #include<cstring>//getline包含在cstring头文件里
    #include<iostream>
    using namespace std;
    int main()
    {
    string str;
    getline(cin,str,'#');
    char c=getchar();
    cout<<str<<' '<<c<<endl;
    return 0;
    }
    输入为:aa#b
    输出为:aa c
      
    注意
    这个getline是个全局函数,而不是iostream的成员函数getline。
    编辑本段成员函数getline
    getline也可以作为成员函数使用
    cin.getline(char* cha,int num,char f);
    向cha中输入num个字符,输入过程中达到num个数或者提前遇到f字符,输入结束。

  • 相关阅读:
    利用MsChart控件绘制多曲线图表
    Silverlight与WCF通信(三) :Silverlight与IIS宿主的WCF间的双工通信
    Silverlight与WCF通信(二) :Silverlight通过netTcpBinding访问IIS宿主WCF
    Silverlight与WCF通信(一) :Silverlight通过httpBinding访问IIS宿主WCF
    Silverlight与WCF通信(四) :Silverlight访问控制台宿主WCF
    Highcharts配合Jquery ajax 请求本页面 陈
    WCF netTcpBinding寄宿到IIS7 陈
    修改ATI显卡全屏 陈
    鼠标画出矩形
    检查进程是否存在
  • 原文地址:https://www.cnblogs.com/zhangyongjian/p/3632803.html
Copyright © 2011-2022 走看看