您的位置:首页 > 编程语言 > C语言/C++

C++中cin、cin.get、cin.getline用法辨析

2016-03-24 18:47 375 查看
1、cin--c++最常用输入函数,基本用法:cin>>表达式1>>表达式2...

(1)、输入数字

例如:int a,b;

cin>>a>>b;

......

(2)、输入字符串

例如:char a[20];

cin>>a;

cout<<a;

输入:abcdefg

输出:abcdefg

注:cin输入字符串以空字符作为结束标志,包括空格、回车和制表符(TAB),一旦接收到这些符号,立即结束输入。

输入:abc defg

输出:abc

2、cin.get

(1)、接收单个字符

例如:char c;

c=cin.get();

cout<<c;

输入:abcde

输出:a

(2)、接收字符串,用法:cin.get(name,size)

例如:char a[5]

cin.get(a,5);

输入:a bcdefg

输出:a bc,接收四个字符加一个/0,可以接收包括空格的内容。

注:(1)、输入字符串不超过限定大小:读取所有字符,直到回车符结束,并将回车符留在输入队列流中,并将被下一次输入操作读取。

(2)、输入字符超过限定大小:读取size-1 个字符和一个/0,然后将剩下的字符以及回车符留在输入队列流中,并将被下一次输入操作读取。

(3)、输入一个空行,回车符仍然留在输入队列流中,需要用clear()重置cin。

(3)、在某些编译器中作为使程序停下来显示输出结果,即cin.get(),等待用户输入回车符结束程序。相当于system("pause")。

3、cin.getline()--接收一个字符串,可以包含空格,以回车符作为结束标志。

例如:char c[20];

cin.getline(c,20);

cout<<c;

输入:ab cd ef

输出:ab cd ef

注:(1)、输入字符串不超过限定大小:读取所有字符,直到回车符结束,并将回车符从输入队列流中删除,不影响下一次输入操作。

(2)、输入字符超过限定大小:读取size-1 个字符和一个/0,剩余字符(包括'\n')留在输入队列流中,随即设置cin实效位(即if(!cin)的判断为真),关闭输入。其后的所有输入都无法得到任何东西,当然也无法得到输入缓冲区中剩余的字符串。但如果用clear()重置cin,其后的输入便可用并会得到遗留在输入缓冲区中的字符。

(3)、输入一个空行,回车符从输入队列流中删除,所以空行是合法输入,且不会影响接下来的输入处理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: