【问题标题】:Standard console output without nextline没有下一行的标准控制台输出
【发布时间】:2012-07-11 15:36:58
【问题描述】:

我想在一行中写入 80 个(标准 conole 宽度)字符,但光标不转到下一行。只有当我想在控制台的 last 行中打印 80 个字符时才会出现问题。它会导致我不想要的滚动。

看看:

我不想要换行符。有什么办法吗? :/ 我在 Windows 上,DEV-C++,使用 WinApi 获取颜色并移动光标(窗口也调整大小)。

感谢任何答案。

【问题讨论】:

  • 发布你所做的代码 sn-p
  • @Dirk:这有什么帮助?他的问题已经说得很清楚了,几乎没有必要。

标签: c++ console newline


【解决方案1】:

不使用标准输出函数,而是使用 Windows 控制台 API 来设置光标位置和绘制字符。具体看WriteConsoleOutput

MSDN Console API Docs

【讨论】:

    【解决方案2】:

    你换行的唯一原因是控制台不够大,无法支持八十颗星。

    所以它把光标推到了下一行。

    【讨论】:

    • 我知道 :) 但是如何防止光标在放置字符后移动?
    【解决方案3】:

    通过最后的一两个“\b”将光标向后移动。

    【讨论】:

    • 没有帮助。我认为它不会向上移动:/
    • 嗯,控制台中没有任何向上或向下,它只是一个 \n\r 将光标移动到下一行,或者它真的很满。
    【解决方案4】:

    对于系统关键控制台窗口,光标应始终保持可见,并且在达到一行中的最大字符数后,唯一的方法是在下一个可见行上弹出(实际上没有创建任何新行)。

    【讨论】:

      【解决方案5】:

      在原始程序中或通过管道使用另一个程序过滤输出。当你在一行上输出了太多的字符时,做任何你喜欢的事情(即删除字符、覆盖等......)。

      【讨论】:

        猜你喜欢
        • 2011-12-01
        • 1970-01-01
        • 2017-06-06
        • 2020-08-24
        • 1970-01-01
        • 1970-01-01
        • 2014-05-23
        • 2013-05-21
        相关资源
        最近更新 更多