浅谈 C++的 >> 输入流

>>是自动读取字符串流内容的符号。
每读完一个符合条件的字符串、整数类型(以空格隔开),之后会自动后移。cin 是指从电脑键盘输入的内容将会以字符串流形式自动导入 cin(即键盘输入内容后,cin 就成为一个“字符串流”了,存储的内容为从键盘输入的内容),而>>则负责读取字符串流的内容,匹配到正确的类型,返回1,否则返回0;用到while将会不断的读取字符串流。
下面直接上代码说明:

 #include<iostream>
     using namespace std;
     int main()
     {
      int s;
      //在键盘输入内容前,cin还没有用到,
      //输完内容之后才把内容以字符串流的形式传给cin流对象
      //cin就变成字符串流,使用提取运算符 ">>" 从设备键盘取得数据,
      //读取类型符合时,就把读取的数据赋值给s;
      cin>>s;
      cout<<endl;
      cout<<s<<endl;
      return 0;
     }

只输入一个数时,cin自动读取内容,读取到空格的地方停止,然后判断读取的内容是否符合类型,这里的s为int类型,符合即把读取的内容赋值给s
只输入一个数

输入多个数据时(用空格隔开),cin自动读取内容,读取到空格的地方停止,然后判断是否符合类型,符合即把读取的内容赋值给s中,所以后面的“3、5、8、456465”没有继续读取了。
输入多个数

假如我想读取多个int数据怎么办?用while不断读取。这里以读取一整行的int数据为例:

 #include<iostream>
 #include<string>
 #include<sstream>
     using namespace std;
     int main()
     {
      int x,i=0;
      string line;
      //从键盘输入多个整数内容(空格隔开)保存到line对象中,此时line不是字符串流
      getline(cin,line);
      //把line对象转化为ss的字符串流
      stringstream ss(line);
      //因为x为int,所以读取ss字符串流时,只有读取到int时,才会返回1,
      //把读取的值赋给x,并且while继续,否则跳出循环
      while(ss>>x)
      {
        cout<<"ss字符串流中第 "<<i++<<" 个数为:";
        cout<<x<<endl;
      }
      return 0;
     }

这里写图片描述

如果读取过程中,读取到不符合类型的部分,将会返回0,跳出循环:
这里写图片描述

以上就是我对>>用法的部分见解,我是C++初学者,如有错误欢迎各位大虾指出。

第一次写原创的博客,有点小激动!希望大家可以相互交流学术知识!!

  • 26
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值