一、getline和get()的使用区别:

首先这两个函数都读取下一行输入,直到到达换行符;但是getline()函数会丢弃换行符,而get()将换行符保留在输入序列中

二、getline()函数的使用方法:

getline()函数读取整行,它使用通过回车输入的换行符来确定输入结尾。要调用这种方法,可以使用cin.getline()。该函数有两个参数,第一个参数是用来存储输入行的数组的名称,第二个参数是要读取的字符数。同时getline()成员函数在读取指定数目的字符或遇到换行符时停止读取。

#include <iostream>
using namespace std;
int main()
{
    const int HH=20;
    char name[HH];
    char dessert[HH];
    
    cout<< "Enter you name:\n";
    cin.getline(name,HH);
    cout<<"Enter your favorite dessert:\n";
    cin.getline(dessert,HH);
    cout<<" I have some delicious "<<dessert;
    cout<<" for you, "<< name << ".\n";
    return 0;
}

三、get()函数的使用:它的参数形式和getline()函数一样,不同之处就是它并不再读取并丢弃换行符,而是将他留在输入队列中。由于第一次调用后,换行符将留在输入队列中,因此第二次调用时看到的第一个字符便是换行符,因此get()认为已达到行尾,而没有发现任何可读取的内容。如果不借助帮助,get()将不能跨过换行符,但是可以使用不带任何参数的cin.get()调用可读取下一个字符(即是换行符)

#include <iostream>
using namespace std;
int main()
{
    const int HH=20;
    char name[HH];
    char dessert[HH];
    
    cout<< "Enter you name:\n";
    cin.get(name,HH).get();
    cout<<"Enter your favorite dessert:\n";
    cin.get(dessert,HH).get();
    cout<<" I have some delicious "<<dessert;
    cout<<" for you, "<< name << ".\n";
    return 0;
}

 

posted on 2019-07-22 22:33  txp玩linux  阅读(663)  评论(0编辑  收藏  举报