【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,这样就错了。

猜你喜欢

转载自blog.csdn.net/IGGIRing/article/details/72870476