读取字符与字符串之get,getline(),cin

在众多的笔试面试题中,难免会碰到需要读取字符串或字符的题目,如果不能正确的读入输入,那么对于程序正确与否,无需多谈。

一、cin   cin使用空白符——换行,制表符,空格作为输入的界定符,可以读取单个字符,整数,字符串(字符数组);当读取字符数组时,在读取结束时会自动的添加空值字符在末尾;会跳过空白字符。

二、cin.get(),cin.get(ch),cin.get(arr,arrSize)

1、cin.get() 返回输入字符的ASCII码,不论什么字符(即使是空格换行,制表符等)均被读入,且每次读取一个字符。

2、cin.get(ch) 读取一个字符,并将字符赋给ch ;注意:不能对于整型使用cin,get(i); 

3、cin.get(arr,arrSize) 读取字符串到数组arr,最长读取长度为arrSize-1,因为最末尾会自动置0;以换行符为输入结束符,且\n会留在缓存区;

三、cin.getline(arr,arrSize) 以换行符为输入结束符,\n符会被丢弃

cin.getline(arr,arrSize,结束符) 读取直到遇到结束符,若超过长度,自动置末尾为结束

getline(cin,string对象) 读取string对象,需要添加string头文件

很多地方都不够详尽,仅写出一些基本用法。

#include<iostream>
#include<string>
using namespace std;
int main()
{
    int i1,i2;
    char c1,c2,c3[15],c4[15];
    cin>>i1>>c1;
    i2=cin.get();
    c2=cin.get();
    cin.get(c3,15);
    cin.get(c4,15,'~');
    cout<<"i1="<<i1<<",i2="<<i2<<"\n";
    cout<<"c1="<<c1<<",c2="<<c2<<"\n";
    cout<<"c3="<<c3<<",c4="<<c4;
    return 0;
}


可以看到,第二个输入虽然前面有空格但是cin会跳过空格,直到遇到2和f,cin.get遇到空格照样读入,只有当回车时(因为缓存)才会输入。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值