【c++语言基础】isdigit函数和putback的一些用法

在老师给的中缀表达式求值的cpp代码中发现一行这样的代码

 

if(isdigit(cinch)) 
		{
			cin.putback(cinch);
			cin>>n;
			sopd.push(n);
		}


不太理解其中的putback的意思,于是搜了搜 ,整理一下理解的思路

 

 

//百度百科对putbacak函数的解释
putback函数调用形式为cin.putback(ch),
其作用是将前面用get或者getline函数从输入流中读取的字符ch返回到输入流,
插入到当前指针的位置,供后面读取。

 

 

 

cin.putback(c)是将字符c放回到输入流中,这样后面用cin>>n时可以读完整的数字。

例如,输入为56 10 +时。
循环中第一次先读入一个字符c="5",
由于它是数字(isdigit),所以需要先putback,再用cin>>n读,
这样n=56。如果不使用putback,由于5已经被读过了,下面从第二个字符读起,那么n=6,这样就错了。

例如,输入为56 10 +时。
循环中第一次先读入一个字符c="5",
由于它是数字(isdigit),所以需要先putback,再用cin>>n读,这样n=56。如果不使用putback,由于5已经被读过了,下面从第二个字符读起,那么n=6,这样就错了。

 

 

 

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值