我正在尝试编写一个模拟计算器的简单程序。我希望程序在 Ctrl + D 按键时退出或关闭。我搜索了stackoverflow并查看了 Ctrl + C 或 Ctrl + A 的其他示例,但示例是在java中和C.
代表C:
(scanf("%lf", &var);
对于java,当按下 Ctrl + Z 时会引发SIGINT
。
signal(SIGINT,leave);
for(;;) getchar();
我想知道我能为C ++中的 Ctrl + D 做些什么......
谢谢大家!
答案 0 :(得分:3)
Ctrl + D 将导致stdin文件描述符返回文件结尾。任何输入读取功能都会反映这一点,然后您可以在到达文件结尾时退出程序。顺便说一句,C示例应该在C ++中逐字处理,尽管它可能不是最惯用的C ++。
顺便说一句,这是家庭作业吗?如果是这样,请务必将其标记为。
答案 1 :(得分:1)
如果您需要在读取输入时以Ctrl-D终止。
while ( std::cin ) // Ctrl-D will terminate the loop
{
...
}
答案 2 :(得分:0)
Ctrl + D 是EOF。如果你得到每个字符,你可以检查你是否有EOF。
答案 3 :(得分:0)
在Unix下,终端将解释 Ctrl + D (在空行上)作为输入的结尾;来自stdin
的进一步阅读将返回EOF
,您可以查看。
答案 4 :(得分:0)
您可以让生活更轻松,并扫描关键字,例如“退出”或“退出”。上次我使用计算器时,这些单词不在键盘上。
许多简单的计算器程序将输入读取为由换行符终止的文本。他们在内存中解析文本,然后吐出答案。
其他更复杂的计算器程序使用窗口并且是事件驱动的。有些人使用“=”之类的按钮来表示输入结束和计算开始(不适用于RPN计算器)。
这些技术消除了使用控制字符序列确定文本结束输入的麻烦,并且更加便携。