C++输入流和输出流心得

本文探讨了C++中的输入流cin和输出流cout的工作原理。详细解释了cout按照从右至左原则进行求值可能导致的输出顺序问题,以及cin如何处理空格作为数据分隔符的情况。还介绍了缓冲区在输出流中的作用,以及如何使用getchar函数来读取包括空格在内的字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

cout语句的一般格式为

cout<<表达式1<<表达式2<<...<<表达式n;

cin语句一般格式为

cin>>表达式1>>表达式2>>...表达式n;


在进行输入或输出操作时,cout、cin都是按从右至左的原则进行求值的;因此我们可能会碰到下面的这种情况:

int i = 1 ;

cout << i++ <<i++ ;


输出结果为2、1。

因为cout首先对右边的表达式求值,得到该部分的输出值为1,之后i变为2,再对左边的i++表达式求值,自然输出值就变为2了,但是最终 i 则变为3.


在定义流对象时,系统会在内存中开辟一段缓冲区,用来暂存输入输出刘的数据。在执行cout语句时,并不是插入一个数据就马上输出一个数据,而是先把插入的数据顺序存放到输出缓冲区中,直到输出缓冲区满或遇到cout语句中的endl(或 '\n' ,ends,flush)为止。此时将缓冲区中已有的数据一起输出,并清空缓冲区。输出流中的数据在系统默认的设备(一般为显示器)中输出。

在用cin输入时,系统也会根据变量的类型从输入流中提取相应长度的字节。如有

char c1,c2;

int a;

float b;

cin>>c1>>c2>>a>>b;

若输入

1234  56.78


系统会取第一个字符'1'给字符变量c1,取第二个字符'2'给c2,然后将34给整型变量a,之后遇到空格,认为34和56.78是分开的,因此最后取56.78给浮点型变量b。

注意:输入流把空格作为数据间的分隔符,不予提取。因此不能用cin语句把空格字符和回车换行符作为字符输入给字符变量,因为它

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值