欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

浅谈 C++的 >> 输入流

程序员文章站 2024-03-07 09:41:56
...

>>是自动读取字符串流内容的符号。
每读完一个符合条件的字符串、整数类型(以空格隔开),之后会自动后移。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
浅谈 C++的 >> 输入流

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

假如我想读取多个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;
     }

浅谈 C++的 >> 输入流

如果读取过程中,读取到不符合类型的部分,将会返回0,跳出循环:
浅谈 C++的 >> 输入流

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

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

相关标签: >>输入流 C++