标题是误导,因为我更感兴趣的是找到一个替代的解决方案。我的直觉是,检查缓冲区是否为空并不是最理想的解决方案(至少在我的情况下)。C++如何检查是否给std :: cin缓冲区为空
我是新的C++和使用C++一直遵循了Bjarne Stroustrup的编程原则和做法。目前我在第7章,我们在哪里“炼”从第6章计算器(我把对源代码的链接问题的结束。)
基本上,计算器可以采取多用户输入,用分号分隔。
> 5+2; 10*2; 5-1;
= 7
> = 20
> = 4
>
但我想摆脱提示字符(“>”),最后两个答案,并再次显示它,只有当用户输入要求。我的第一本能是找到一种方法来检查缓冲区是否为空,如果是,请关闭角色,如果没有,请继续回答问题。但经过一番Google搜索之后,我意识到这项任务并不像我最初想象的那么容易......而且也许这可能不是一个好主意。
我想基本上我的问题是如何摆脱“>”字符为当有多个输入的最后两个答案。但是,如果检查CIN缓冲是可能是不是一个坏主意,毕竟,我很想知道如何做到这一点。
的源代码:https://gist.github.com/Spicy-Pumpkin/4187856492ccca1a24eaa741d7417675
头文件:http://www.stroustrup.com/Programming/PPP2code/std_lib_facilities.h
^你需要这个头文件。我认为它是由作者自己写的。
编辑:我没看网上的一些解决方案,绕不过是他们中的诚实没有作出任何意义,我。它一直样4日以来,我拿起了C++和我在编程非常薄的背景,所以有时甚至是谷歌搜索是有点困难..
用棍子戳,看看它是否咆哮。 –
类似的问题:http://stackoverflow.com/questions/3317740/checking-data-availability-before-calling-stdgetline –
在这种情况下,您可以使用'std :: getline'一次读取整行,并显示每行之后的提示 –