如何输出上面的输入线?

时间:2017-02-13 15:21:46

标签: c++ console-application

我正在尝试根据控制台环境制作文字冒险游戏,我有一个简单但难以解决的问题。

嗯,这有点难以解释。简而言之,“输出高于输入”。

让我解释一下。当您正在阅读一些文本,并且您想要阅读下一行时,下一行文本显示在输入光标上方,如:

output text example
output text example 2
Input> 

然后按回车,

output text example
output text example 2
output text example 3
Input>

控制台看起来像这样。

我在Stack Overflow上发布了一个问题之前试图谷歌,但我想不出一个适当的关键词来谷歌。而且我不确定这个解释是否足以让你明白。

尽管如此,如果你让我知道如何用C ++制作它们,我们将非常感激。

此致

3 个答案:

答案 0 :(得分:2)

查看nCurses NDK ++,它允许在C ++中进行控制台操作

http://ndk-xx.sourceforge.net/

我在YouTube上发现了一个很好的教程,几乎完全适合你的用例(这是一个使用nCurses制作基于文本的控制台游戏的10个视频系列)。

https://www.youtube.com/watch?v=3YiPdibiQHA

答案 1 :(得分:1)

唯一的方法是创建一个数组并将输出保存在其中,然后每次用户输入另一个输入时,清除控制台并使用上一个输出更新数组,然后打印数组输出(现在有2个输出)在它内部)然后再次等待输入...当他输入你通过添加最后一个输出更新数组然后你清除控制台并打印数组的输出,然后等待输入等等..

这是一个关于如何清除控制台的链接

注意::

清除控制台不是用C ++构建的东西,因为C ++在打印它时可能会打印到文件或打印机或任何输出而不仅仅是屏幕。它是一个操作系统功能。

How can I clear console

快乐编码

答案 2 :(得分:1)

如果您查找一组ASCII代码,您会看到类似

的代码

8 BS退格

13 CR回车

27 ESC逃脱

大多数游戏机都遵守这些规范。 (你必须抬头看看逃脱,他们会给出颜色和胆量之类的东西)。您可以使用它们来创建更具交互性的体验,而不是简单的printf()行/ fgets()用户线循环。