目录
cin常用的有三种方法:
cin:
cin.get():
cin.getline()
cin>>
cin.get()
cin.getline()
用法:可以连续从键盘读取想要的数据,以空格、tab或换行(回车也是换行)作为分隔符。
例1:空格做分隔符
#include
using namespace std;
int main()
{
int a, b, c;
cin>>a>>b>>c;
cout << a << b << c;
return 0;
}
例3: 换行做分隔符
用法:1、不会忽略分隔符,若用的回车当分隔符,则会在输出的时候把回车也打印出来,造成了 不用endl也换行的情况;
2、读取一个字符,返回值是int类型,是输入的字符的ASCII码值;
种类:无参,一参,二参,三参
无参:a=cin.get();用赋值的方式让变量被赋予缓冲区的内容
一参:cin.get(b);在括号里填要输入的变量名
二参:cin.get(arr,3);在括号里填要输入的变量数组名和要吸收的个数
注意:第二个参数要填要吸收的个数+1,如要吸收三个字符,则应该写4;若写的3,则第三个位置将会被赋值为空
三参:cin.get(arr,3,'\n);在括号里填要输入的变量数组名和要吸收的个数和要结束的字符
注意:跟二参一样要注意的内容
例4:无参和一参
#include
using namespace std;
int main()
{
char a, b;
a = cin.get();//无参
cin.get(b);
cout << a << endl;
cout << b << endl;
return 0;
}
输入了一个q,还未输出b变量的值,就结束了。
原因:a变量被赋予了输入的q,b变量吸收了回车键。
第一个q是输入的q,并赋予a,第二个q是先endl回车再打印出的a的值,第三个回车是打印的b的值,第四个回车是endl。
例5:二参
注意:第7行括号里的值是要赋给arr的个数-1,即要赋给3个位置,则要写4
#include
using namespace std;
int main()
{
char arr[20];
cin.get(arr, 4);
cout << arr << endl;
return 0;
}
第7行括号里写了4, 输入123456,吸收123。
三参的用法与二参差不多,只是多加了一个条件,当遇到什么字符时,结束赋值。
例6:三参
#include
using namespace std;
int main()
{
char arr[20];
cin.get(arr, 4,'5');
cout << arr << endl;
return 0;
}
第7行括号里第三个参数写的是'5’,即遇到5时,结束赋值,所以赋了1
大致与cin.get()一样,唯一的不同cin,getline()不会将结束符残留在缓冲区中。
详细的来说:cin.get()会将换行符留在缓冲区,下一个变量赋值时会被赋予换行符。而cin.getline()则不会发生这种事。