zoukankan      html  css  js  c++  java
  • getline()与get()(c++学习笔记)

    istream中的类(如cin)提供了一些面向行的类成员函数:getline()和get()

    1.getline()函数

    读取整行,使用回车键输入的换行符来确定输入结尾。

    调用方法:cin.getline(参数1,参数2)

    该函数有两个参数,第一个参数是用来存储输入行的数组的名称,第二个参数是要读取的字符数,如果这个参数为20,则函数最多读取19个字符,余下的空间用于存储自动在结尾处添加的空字符。

    getline()成员函数在读取指定数目的字符或遇到换行符时停止读取。

    它通过换行符来确定行尾,但不保存换行符,相反,在存储字符串时,它用空字符来替换换行符。

    2.get()函数

    调用方法:cin.get(参数1,参数2)

    与getline()一样,接受的参数相同,解释参数的方式也相同,并且都读取到行尾,但get不再读取并丢弃换行符,而是将其留在输入队列中。

    例:cin.get(name,Size);

           cin.get(dessert,Size);

    由于第一次调用后,换行符将留在输入队列中,因此第二次调用时看到的第一个字符便是换行符,因此get()认为已达到行尾,而没有发现任何可读取的内容。

    可用不带参的cin.get()可读取下一个字符(即便是换行符),因此可以用它来处理换行符,为读取下一行做好准备。

    也可将两个类成员拼接起来使用,如cin.get(name,Size).get();

    当使用get()来读取整行,如何知道停止读取的原因是由于已经读取了整行,而不是由于数组已填满?

    查看下一个字符,如果是换行符,则已读取整行,否则,说明该行还有其他输入。

    3.get(char &)与get(void)成员函数(istream类)

    • 方法get(char &)与get(void)提供 不跳过空白的单字符输入功能。
    • get(char &)成员函数返回一个指向用于调用它的istream对象的引用,这意味着可以拼接get(char &)后面的其他抽取。
    • get(void)成员函数的返回类型为int(或某种更大的整形,这取决于字符集和区域)

    4.getline()与get()

    • istream & get(char *,int,char);
    • istream & get(char *,int);
    • istream & getline(char *,int,char);
    • istream & getline(char *,int);

    第一个参数是用于放置输入字符串的内存单元的地址,第二个参数比要读取的最大字符数大1(额外的一个字符用于存储结尾的空字符,以便将输入存储为一个字符串)。

    第三个参数指定用作分界符的字符,只有两个参数的版本将换行符用作分界符。

  • 相关阅读:
    带编译器的codeblocks下载地址
    联想拯救者s15k重装w10系统教程
    w10下Oracle 11g完全干净卸载
    小机房的树(codevs 2370)
    NOIP[2015] 运输计划(codevs 4632)
    ⑨要写信(codevs 1697)
    酒厂选址(codevs 1507)
    美丽的大树(codevs 2124)
    乘法运算(codevs 3254)
    货车运输(codevs 3287)
  • 原文地址:https://www.cnblogs.com/zhi321/p/11427290.html
Copyright © 2011-2022 走看看