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)、输入一个空行,回车符从输入队列流中删除,所以空行是合法输入,且不会影响接下来的输入处理。
(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)、输入一个空行,回车符从输入队列流中删除,所以空行是合法输入,且不会影响接下来的输入处理。
相关文章推荐
- 跨平台C++开源代码的两种常用编译方式
- 跨平台C++开源代码的两种常用编译方式
- C++中弱符号(弱引用)的意义及实例
- TraceTool 跟踪工具的瑞士军刀(C++版使用)
- 笔试3 25
- C++类的特性相关题目
- C++primer第七章习题答案
- C++第二次上机实验2-
- 采用C++的ACE库实现的一个通用的C/S架构通信程序(最终版)
- c primer plus书中的小错误
- c++里的string类
- 实现C++标准库string类的简单版本
- c++模板链表实现
- C++作业2
- CBC和CTR解密模式——C++实现
- C++学习笔记2——对象数组与对象指针
- #ifdef条件选择应用!
- 通过C语言程序修改控制台的背景和前景颜色
- VC++图像存取总结
- C语言深度剖析读书笔记(一)