cin的用法

C++

输入输出

cin与cout

标准输入与输出cin,cout
标准错误流 cerr
标准日志流 clog
cin

cin 可以连续从键盘读取数据,分隔符:空格、tab键、换行(回车)

cin>>等价于cin>>operator>>(),即调用成员函数来获取数据
输入数据完成后,需要再按下回车键程序才能进行下一步,且回车键的\r会被转换成\n。

缓冲区为空的时候,成员函数会阻塞等待数据的到来,一旦出现’\0’,成员函数就会读取数据,如果第一个字符是分割字符,则自动忽略并清除,取下一个字符,直到遇见下一个分割符就停止读取数据。 但是余下的字符串并没有清空,此时cin会直接从剩余的字符串中读取,跳过请求输入

例:
在这里插入图片描述

** cin.getline()**
用于接收字符串,有两种形式

char str[100];
cin.getline(str,n);//第一个参数往哪里写,第二个参数,写多少个字符,实际有效字符n-1,最后一个字符为\0
cin.getline(str,n,'c')//多的参数标示遇到‘c’字符就停止读取

cin.get()
一种用于接收字符,另一种用于接收单个字符串

char c;
c = cin.get();//也可以写成cin.get(c)

char str[100];
cin.getline(str,n);
cin.getline(str,n,'c')
//与cin.getline()一样

cin.gcount()
统计读入的字符串个数
cout << cin.gcount() << endl;

getline()
函数原型为:
istream& getline(istream &is,string &str,char delim)
参数1:一个输入流 比如cin
参数2: 从输入流读取的字符串放进str中,是string类型
参数3: 终止符,遇见这个字符就停止读入,默认情况下该字符为’\n’,即回车换行符

进行判断时,if(getline(cin,str)),只要cin输入流是有效,就会进行下一步

cin.get()与cin.getline()的区别

cin.get()不会读取并丢弃换行符,而是留在缓冲区,所以不能连续两次调用cin.get()
解决的方法:
调用一次之后,用cin.get()跳过换行符,再进行读取
也可以进行拼接使用:
char str[100];
cin.get(str,100).get();
cin.get(str,100)返回一个cin对象,然后继续调用get()
同理cin.getline()也可以调用两次

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值