博文转载自微信公众号(CPP开发者)文章:C++ cin 的详细用法
相关博文:C++之get、getline探究
1.cin简介
2. cin 的常用读取方法
使用 cin 从标准输入读取数据时,通常用到的方法有 cin>>、cin.get(),cin.getline()。
2.1 cin>> 的用法
cin 可以连续从键盘读取想要的数据,以空格、tab 或换行作为分隔符。实例如下:
例1
附例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;
}
例2
附例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() 的用法
2.2.1 cin.get() 读取一个字符
例3
附例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() 读取一行
例4
附例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() 读取一行
例5
注意,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 的条件状态
4. cin 清空输入缓冲区
5.从标准输入读取一行字符串的其它方法
5.1 getline() 读取一行
例6
附例6代码
#include <string>
#include <iostream>
using namespace std;
int main()
{
string str;
getline(cin,str);
cout << str << endl;
return 0;
}
5.1 getline() 读取一行
例7
附例7代码
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
char array[20]={NULL};
gets(array);
cout << array << endl;
return 0;
}