【问题标题】:how to set cursor to previous line in c如何将光标设置为c中的上一行
【发布时间】:2022-11-29 20:19:39
【问题描述】:

我一直在处理一个我无法在输出终端中用特定的 c 语言解决的问题我希望我的光标在前一行 例如

prints("hello\n");
prints("Hi");

如果想在接近水平的位置打印 hi 到 hello 但不是我删除 \n 或通过重新写任何东西我只想在 \n 光标转到上一行并打印 hi 任何人都可以帮助我吗

prints("\n hi\r\b");
prints("hello");

我希望它像hello hi

【问题讨论】:

  • C 标准不支持这个。根据终端,您可以尝试所谓的 ANSI 代码或 VT100。
  • ISO C 不提供任何在屏幕上随意移动光标的方法。然而,大多数platforms 不同类型的扩展确实提供了这样的功能。因此,如果您希望您的问题可以回答,则必须指定您询问的平台(例如操作系统)。
  • 对于 Windows 控制台,Win32API 有一堆与控制台相关的调用。对于 Linux/Unix,ncurses 是事实上的终端控制标准库。

标签: c function printing output cursor


【解决方案1】:

在纯 C 中,您只能编辑当前行:

 = 1 character back

 = Beginning of line

你可以像那样去每个位置(Windows):

#include <windows.h>

void goto_xy(unsigned x, unsigned y)
{
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), (COORD){x, y});
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多