C++之cin探究

C++之cin探究

博文转载自微信公众号(CPP开发者)文章:C++ cin 的详细用法
相关博文:C++之get、getline探究

1.cin简介

C++之cin探究

2. cin 的常用读取方法

  使用 cin 从标准输入读取数据时,通常用到的方法有 cin>>、cin.get(),cin.getline()。

2.1 cin>> 的用法

  cin 可以连续从键盘读取想要的数据,以空格、tab 或换行作为分隔符。实例如下:
例1
C++之cin探究
C++之cin探究
附例1代码

#include <iostream>
using namespace std;

int main()
{
    char a;
    int b;
    float c;
    cin>>a>>b>>c;
    cout<<a<<" "<<b<<" "<<c<<" "<<endl;
    return 0;
}

C++之cin探究
例2
C++之cin探究
C++之cin探究
C++之cin探究
附例2代码

#include <string>
#include <iostream>
using namespace std;

int main() {
  char a;
  int b;
  float c;
  string str;
  cin>>a>>b>>c>>str;
  cout<<a<<" "<<b<<" "<<c<<" "<<str<<endl;

  string test;
  getline(cin,test);  //不阻塞
  cout<<"test:"<<test<<endl;
  return 0;
}

2.2 cin.get() 的用法

C++之cin探究

2.2.1 cin.get() 读取一个字符

例3
C++之cin探究
C++之cin探究
附例3代码

#include <iostream>
using namespace std;

int main() {
  char a;
  char b;
  a=cin.get();
  cin.get(b);
  cout << "a=" << a <<"b="<< b <<endl;
  return 0;
}

2.2.2 cin.get() 读取一行

C++之cin探究
例4
C++之cin探究
C++之cin探究
附例4代码

#include <iostream>
using namespace std;

int main() 
{
  char b;
  char array[20]={NULL}; 
  cin.get(array,20);
  cin.get(b);
  cout<<array<<" "<<(int)b<<endl;
  return 0;
}

2.3 cin.getline() 读取一行

C++之cin探究
例5
C++之cin探究
注意,cin.getline() 与 cin.get() 的区别是,cin.getline() 不会将行结束符(如换行符)残留在输入缓冲区中。
附例5代码

#include <iostream>
using namespace std;

int main() {
  char array[20]={NULL};
  cin.getline(array,20); //或者指定结束符,使用下面一行
  //cin.getline(array,20,'\n');
  cout<<array<<endl;
  return 0;
}

3. cin 的条件状态

C++之cin探究
C++之cin探究

4. cin 清空输入缓冲区

C++之cin探究
C++之cin探究

5.从标准输入读取一行字符串的其它方法

5.1 getline() 读取一行

C++之cin探究
例6
C++之cin探究
C++之cin探究
附例6代码

#include <string>
#include <iostream>
using namespace std;

int main()
{
  string str;
  getline(cin,str);
  cout << str << endl;
  return 0;
}

5.1 getline() 读取一行

C++之cin探究
例7
C++之cin探究
附例7代码

#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
  char array[20]={NULL};
  gets(array);
  cout << array << endl;
  return 0;
}

C++之cin探究

上一篇:C++ 带空格字符串的输入与分割


下一篇:C++中字符和字符串的读取