深入理解C/C++标准输入输出,cin、scanf、getchar()、文件结束符EOF等常见问题详解

本文详细解答了C/C++编程中关于cin、scanf、getchar()和EOF的常见问题。包括cin为何在输入错误或到达文件结束符时才跳出循环,scanf的返回值和EOF的含义,cin如何处理缓冲区数据,以及getchar()返回的ASCII码等。同时,对比了scanf和cin在效率与便利性上的差异。
摘要由CSDN通过智能技术生成

问题1:为什么我用while(cin>>a)一直跳不出循环?(cin的">>"函数返回值是什么?)

问题描述:《C++ primer》上也出现过类似如下代码,然后自己在控制台输入数据,一直输入都跳不出循环。

int a;
while(cin>>a){
   
}

原因:cin是一个类,没有返回值,while判断条件其实是在判断">>“函数的返回值。”>>“是一个被重载过的运算符,这个重载函数的返回值类型为istream&,返回值通常就是输入流cin本身,如果没有遇到错误输入或者文件末尾(EOF),cin就一直有效,当然就跳不出while循环。当你在键盘上输入Ctrl+Z,再按Enter键,就等同于输入遇到了文件末尾EOF,遇到EOF后,”>>"函数的返回值是0,就能

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值