标题有误导性,因为我更感兴趣的是寻找一种替代解决方案。我的直觉是检查缓冲区是否为空不是最理想的解决方案(至少在我的情况下)。
我是C++ 的新手,并一直在使用 Bjarne Stroustrup 的《C++ 程序设计原理与实践》进行学习。我目前正在第七章,我们正在“改进”第六章的计算器。(我将把源代码的链接放在问题的末尾。)
基本上,计算器可以从用户那里接收多个输入,用分号分隔。
但我想要在最后两个答案中去掉提示字符('>'),仅在请求用户输入时再次显示它。我的第一反应是找到一种方法来检查缓冲区是否为空,如果是,则输出该字符,如果不是,则继续输出答案。但经过一番搜索,我意识到这个任务并不像我最初想象的那么容易...而且也许这并不是一个好主意。
我想我的问题本质上是如何在有多个输入时去掉最后两个答案的“>”字符。但是如果检查cin缓冲区确实可行,并且并不是一个坏主意,我很想知道如何做到这一点。
源代码:https://gist.github.com/Spicy-Pumpkin/4187856492ccca1a24eaa741d7417675 头文件:http://www.stroustrup.com/Programming/PPP2code/std_lib_facilities.h ^ 您需要这个头文件。我认为它是作者自己编写的。
编辑:我确实在网上寻找了一些解决方案,但老实说,没有一个对我有任何意义。自从我学习C++以来已经过去了4天,我对编程的背景非常薄弱,所以有时甚至在搜索时也会感到困难。
我是C++ 的新手,并一直在使用 Bjarne Stroustrup 的《C++ 程序设计原理与实践》进行学习。我目前正在第七章,我们正在“改进”第六章的计算器。(我将把源代码的链接放在问题的末尾。)
基本上,计算器可以从用户那里接收多个输入,用分号分隔。
> 5+2; 10*2; 5-1;
= 7
> = 20
> = 4
>
但我想要在最后两个答案中去掉提示字符('>'),仅在请求用户输入时再次显示它。我的第一反应是找到一种方法来检查缓冲区是否为空,如果是,则输出该字符,如果不是,则继续输出答案。但经过一番搜索,我意识到这个任务并不像我最初想象的那么容易...而且也许这并不是一个好主意。
我想我的问题本质上是如何在有多个输入时去掉最后两个答案的“>”字符。但是如果检查cin缓冲区确实可行,并且并不是一个坏主意,我很想知道如何做到这一点。
源代码:https://gist.github.com/Spicy-Pumpkin/4187856492ccca1a24eaa741d7417675 头文件:http://www.stroustrup.com/Programming/PPP2code/std_lib_facilities.h ^ 您需要这个头文件。我认为它是作者自己编写的。
编辑:我确实在网上寻找了一些解决方案,但老实说,没有一个对我有任何意义。自从我学习C++以来已经过去了4天,我对编程的背景非常薄弱,所以有时甚至在搜索时也会感到困难。
std::getline
一次读取整行,并在每行后显示提示符。 - M.M