getline()函数与get()函数

1.getline()

#include<string>

getline()的原型是istream& getline ( istream &is , string &str , char delim );
其中 istream &is 表示一个输入流,譬如cin;
string&str表示把从输入流读入的字符串存放在这个字符串中(可以自己随便命名,str什么的都可以);
char delim表示遇到这个字符停止读入,在不设置的情况下系统默认该字符为’\n’,也就是回车换行符(遇到回车停止读入)。
ps: 对于while(getline(cin,str)) 语句,默认回车符停止读入,按Ctrl+Z或键入EOF回车即可退出循环。

    string str;
    getline(cin, str);

2.cin.getline()

//cin.getline()不需要#include<string>头文件
#include<iostream>

该函数有两个参数。
第一个参数是用来存储输入行的数组的名称
第二个参数是要读取的字符数量。如果参数是 20,那么最多可以读取 19 个字符,余下的空间用于存储自动在结尾处添加的空字符。
如果在读取 n-1 个字符之前遇到终止字符(第三个参数不写,默认为 ‘\n’ ),则提前结束。

	const int size = 20;
    char str[size];
    cin.getline(str, size);

3.cin.get()

#include<iostream>

get()与getline()区别不是很大,但一个明显的区别是get遇到 '\n '字符后便返回,这时 '\n '还在缓冲区中,所以下次读出来的将是 '\n ',而getline遇到 '\n '也返回,但它会把 '\n '从缓冲区里移除掉
两者都会在读取的字符串后面自动加上 ‘\0’。

cin.get(str1, size);
cin.get();    //读入换行符'\n'
cin.get(str2, size);
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值