c++中字符输入函数getline、cin.getline区分

1、cin>>s; s可以是:string  s、char s[];

这个是ostream中的函数,遇到‘ ’(空格) , '\n'(换行),就会自动结束,因此如果用cin读取字符串,那么这个字符串中不能含有空格和换行。

cin因为不识别空格和换行,因此如果在输入字符串的时候,在字符开始处输入了空格或换行,没有任何影响。

#include <iostream>
#include <string>
#include <stdio.h>
using namespace std;


int main()
{
    string s;
    int n;
    while(cin>>s)
    {
        cout<<s<<endl;
    }
}

2、getline(cin , s , '\n') , s只能是 string s

getline属于string类的字符读取函数,这个函数的第三个参数可以不写(getling(cin , s)),第三个参数默认是'\0',这种情况下如果要结束一个字符串输入,对于有些编译器(VC , VS), 必须得连续输入两个换行。

对于getline(cin , s , 'z') ,能识别空格和换行

对于getline只要截止字符(第三个参数)设置得当,能读取多行

#include <iostream>
#include <string>
#include <stdio.h>
using namespace std;


int main()
{
    string s;
    int n;
    while(getline(cin , s , 'z'))
    {
        cout<<s<<endl;
    }
}

3、cin.getline(s , 100 , '/n') , 只能是 char s[];

cin.getline属于ostream , 和getline类似,只是只能对char s[]类型进行读取,除这点外,其他和getline都相同。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值