初学C++输入输出流

初学C++输入输出流

最近在学C++,简单总结一下,防止自己忘了,如果有不对的地方还请各位大佬多多赐教!

先简单说一下。
输出流:cout<<,cout为输出流,相当于屏幕显示。若想输出数据,只需将数据存放到输出流,屏幕即可显示想要输出的数据。
输入流:cin>>,cin为输入流,相当于键盘(键盘输入—键盘缓冲区—enter—内存缓冲区)。

一、输入流常用语句

1. cin>>ch以空格或回车作为结束符,提取当前数据且不放回,不可提取空格或回车

输入的所有数据会存放到cin输入流里面(包括整数、字符、空格、回车等),以回车、空格或tab作为结束符。

cin可理解为提取符,它是一个一个提取的,通过cin可将第一个结束符之前的数据提取出来给ch,那么提取出的这个数据就会从输入流中删除。

因此我们用get再提取输入流中数据的时候,当前数据就变为了空格或回车的结束符。因此为了能够继续读取下一个有效数据,我们可以使用cin.ignore(n),忽视n个字符,再提取时便是下一个有效数据了。

当然了,cin>>并不需要ignore空格或回车即可读取数据,因为它根本不会提取空格或回车。
cin>>
cin>>
cin>>
cin>>

2. cin.get();(只可提取输入流当前的一个字符(包括空格和回车)且不放回,只可提取一个字符

-ch=cin.get()或cin.get(ch);从输入流cin中提取当前的一个字符给ch。
cin.get(ch)
cin.get(ch)
-cin.get(ch,5);从输入流cin中提取当前的4个字符给ch[5],最后一位用‘\0’结束,不显示。

cin.get(ch,5)

cin.get(ch,5)
-cin.get();提取当前的一个字符并丢掉。(示例中r被丢掉了)

cin.get()

cin.get()
3. cin.getline();(可提取一个字符串(包括空格和回车)且不放回,只可提取一个字符串
注意:cin.getline()在提取字符串后,该行剩余的所有数据都会被清除。

-cin.getline(ch,5);从输入流cin中提取当前的一个长度为5的字符串(只包含4个字符)给ch[5]。类似cin.get(ch,5)。

-cin.getline(ch,5,’a’);从输入流cin中提取当前的一个长度是5的字符串给ch[5],若遇到’a则提前结束并将当前提取的数据(不包括’a’)给ch[5]。
cin.getline()
cin.getline()
4. getline();(提取一个字符串)
-getline(cin,ch);从输入流cin中提取当前的字符串给ch。
#include
string a;
getline(cin,a);
与cin.getline()类似,但是cin.getline()属于istream流,而getline()属于string流,是两个不一样的函数。
getline()
getline()
5. cin.ignore();提取并忽略,一般用于舍弃空格或回车,进而提取有效数据)

-cin.ignore(n ,’\n’);忽略n次或遇到回车即停止忽略(舍弃),回车也会被舍弃
cin.ignore()
cin.ignore()
-cin.ignore();不给参数,则默认cin.ignore(1,EOF),其中EOF(end of file)为文件结尾。相当于只忽略1次。

总结:拿的少,扔得多。

6. cin.gcount();(上一次输入时读入(get)的字符数,包括结束符’\0’

cin.gcount()
cin.gcount()
7. cin.peek();拿出来,判断一下,再放回去,不影响输入流数据)

-cin.peek();从输入流中提取出当前数据进行判断,完成操作后再放回输入流。

cin.peek()
cin.peek()

二、输出流常用语句

1. cout.write();写字符串的前n个字符,且字符串ch定义为const char *ch)

-cout.write(ch,5);写出ch的前5个字符。
cout.write(ch,5)
cout.write(ch,5)
-cout.write(ch1,1).write(ch2,2).write(ch3,3);连续写出ch1的前1个字符,ch2的前2个字符,ch3的前3个字符。
cout.write().write().write()
cout.write().write().write()
2. cout.precision();(设定输出精度,也可理解为输出的有效数字个数默认保留6位有效数字)

-cout.precision(n);输出数据有效数字个数为n个。
cout.precision()
cout.precision()
3. cout.width();(设定输出宽度,若设定值大于已有字符个数,则在前面用空格补齐(默认右对齐)。若设定值小于已有字符个数,则直接输出全部字符。字符为const char *ch)

-cout.width();不给参数,默认宽度为0。
-cout.width(n);设定输出宽度为n。
注意:第一次指定宽度并输出后,下次会默认输出宽度为0,此时若想输出指定宽度则必须重新指定
cout.width()
cout.width()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值