【问题标题】:how to move up to the previous line in C++? [duplicate]如何移动到 C++ 中的上一行? [复制]
【发布时间】:2014-12-14 01:37:31
【问题描述】:

有什么角色可以让我向上移动吗?

我想打印这个:

********
*      *
*      *
*      *
*      *
********

我刚刚打印了这个:

我怎样才能完成这个图?

我正在编写一个 Windows 控制台应用程序。

【问题讨论】:

  • 可能取决于您的终端或其他输出设备/软件。
  • @StefanoSanfilippo 这不是问题的答案。谢谢。
  • @Deduplicator 我必须说多少次“我搜索了一些论坛(以及 stacoverflow)和 Google。但我无法实现解决方案。”因此,请停止评论相同的事情。谢谢。 P.S:而且解决方案(这个:stackoverflow.com/questions/4872976/)也不能解决我的问题。再次感谢。
  • @Deduplicator:我编辑了……谢谢。
  • @coni:干得好。现在它不再是重复的,因为 Windows 控制台没有任何向上转义,并且您询问了您想要做什么,而不是特定的方式来做到这一点。赞成并投票重新开放。 (顺便说一句:虽然图片已经足够好,但最好还是像您那样使用文字来实现您想要的最终结果。)

标签: c++ windows console console-application windows-console


【解决方案1】:

我发布此答案后,问题发生了很大变化。


上移一行与 C++ 无关,但与输出设备的功能以及它期望如何对此类操作进行编码有关。

ASCII 或 C++ 标准库或(我记得)例如不支持它。在 ANSI 转义序列中。

实现效果的一种方法是在内部缓冲区中生成输出,例如C++中的vector<string>,然后在所有输出生成后输出缓冲区内容。

【讨论】:

  • 哦,there is 的转义码。是\033[1F
  • @5gon12eder 我也读过这个话题,但对我没有帮助。打印如下:<-[1F。我应该包括任何图书馆吗?我正在使用iostreamstring。谢谢。
  • @coni 您可能应该使用“单向”干杯和hth。 - 阿尔夫提到了。但是,如果您想要一个用于终端控制的库:请查看 (n)curses。如果转义码不起作用,则它与您的 C++ 代码无关,而是与您的终端(模拟器)有关,再次如上述答案所述。
  • @5gon12eder:好的。非常感谢您的关注和评论:)
  • @5gon12eder:谢谢!我不知道。很高兴我加入了黄鼠狼的措辞... ;-)
猜你喜欢
  • 1970-01-01
  • 2020-11-05
  • 1970-01-01
  • 2016-01-20
  • 1970-01-01
  • 1970-01-01
  • 2017-07-09
  • 1970-01-01
  • 2019-01-10
相关资源
最近更新 更多