【C++】输入流小结
来源:互联网 发布:linux sh 编辑:程序博客网 时间:2024/06/10 00:29
几个常用的c++ cin成员函数:
1.cin.get();
2.cin.get(字符);
3.cin.get(字符数组指针,要读取的最大字符数+1,结束字符(默认为‘\n’));
4.cin.getline(字符数组指针,要读取的最大字符数+1,结束字符(默认为‘\n’));
5.cin.gets(字符指针);
6.cin>>;
*************************************************************************************
1.cin.get()
此函数主要用来舍弃输入流中的不需要的字符,或者舍弃回车,弥补cin.get(字符数组名,接收字符数目)的不足.;
当然也可用来读取字符—ch=cin.get(),等价于cin.get(ch);
可读取空格及回车;
2.cin.get(字符)
此函数的返回值是一个iostream对象,相当于cin;可进行连级输入—cin.get(a).get(b);
可读取空格及回车;
3.cin.get(字符数组指针,要读取的最大字符数+1,结束字符(默认为‘\n’))
此函数与cin.getline()参数相同,功能也差不多;
唯有一个区别:
get遇到 '\n '字符后便返回,这时 '\n '还在缓冲区中,所以下次读出来的将是 '\n ';
注:如果不舍去缓冲区中的‘\n’,下次使用get(有参)读取时,会读取‘\n’并将它继续留在缓冲区,
即此次读取,字符数组中没有得到任何字符;
而getline遇到 '\n '也返回,但它会把 '\n '从缓冲区里移除掉 所以很多时候用getline方便些
*********************************************************************************************
以下是代码及运行结果:
由于使用cin.get(name1,15)后没有舍弃缓冲区内的‘\n’,所以当执行cin.get(address1,15)时,直接读取缓冲区的‘\n’,而不能从键盘上读取字符串;运行结果为:
如在cout << "name:" << name1;与char address1[15];之间加上cin.get();
则会舍弃掉输入name后按下的换行符,则程序运行结果为:
4.cin.getline()使用方法同cin.get(),只不过不用舍弃换行符,既不用加上cin.get();
**************************************************************************************
5.cin.gets(字符指针)从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的字符串存到字符指针里;EOF在windows系统中为“enter--ctrl+z--enter”;
*************************************************************************************************************************
6.cin>>
a.输入字符串:
当输入字符串时,运算符“>>”的作用是跳过空白,读入后面的非空白字符,
直到遇到另一个空白字符为止,并在串尾放一个字符‘\0’。
例:
char *str;
cin>>str;
当输入csdn snow 时;str指向的字符串为csdn;即cin>>只读取到了空白符(空格,回车等)之前的字符串,snow仍然在缓冲区内;
b.一般情况下:(非字符串输入)
运算符“>>”将跳过空白符,然后读入后面的与变量类型相对应的值。
因此,给一组变量输入值时可用空白符(空格、回车或Tab键)将键入的数值间隔开。
即cin>>不能读取空格及回车,不能用cin>>ch;while(ch!='\n')作为循环终止判断条件;
例:
int i;
char c;
cin>>i>>c;
输入时可 2 x(回车);
或是:2(回车)x(回车);
****************************************************************************
目前了解的就这么多,希望能对大家有所帮助,要是有什么问题可以随时留言。
- 【C++】输入流小结
- C++/C调试输入小结
- 小结:C语言的输入和输出
- C语言小结-输入型参数和输出型参数
- c,c++输入流
- c++字符串输入小结
- struts2输入校验小结
- 第五章 输入 小结
- 输入对象:FileReader小结
- while函数输入小结
- 字符串输入小结
- c++输入函数小结
- C小结
- c小结
- 【C++】输入流cin方法
- C输入流scanf()
- linux中命令的输入流输出流小结
- java IO 学习小结之输入流InputStream
- Beautiful String-连续字符串
- 多线程还是多进程的选择及区别
- IOS学习---OC基础学习1
- struts2中文乱码问题的解决方法
- stl-非变异算法
- 【C++】输入流小结
- 给出101个整数数,这101个数是1~100中的数,其中只有一个是出现两次的数,要求找出这个数。
- 学习OpenStack(一)环境准备
- 高级图像去雾算法的快速实现。
- main 及 WinMain参数
- 在win8下安装vs2008出现Microsoft Visual Studio Web创作组件安装失败问题的解决方法
- 轻松学习之Linux教程一 ubuntu14.04+windows双系统安装
- ubuntu14下的gedit3插件安装
- struts2中把list转为json