【问题标题】:Refreshing values in the console刷新控制台中的值
【发布时间】:2009-07-28 14:15:38
【问题描述】:

我不知道如何很好地解释这一点,但这里有一个镜头。请不要犹豫,要求澄清。

假设我有一个控制台,它显示随某些事件而变化的数字。最好的例子是显示高度、方向、风等的“平面”仪器。像这样:

Altitude: 9876ft      Direction: NE
Wind:     5km, NE
...

我只有一个 Windows 和 Linux 控制台,我希望这些值能够就地刷新

这很简单吗? C 或 C# 代码和任何指针肯定会有所帮助。

谢谢。

【问题讨论】:

    标签: c# c console


    【解决方案1】:

    curses 库是处理这个问题的常用方法,而且它具有合理的可移植性。

    【讨论】:

      【解决方案2】:

      我会为此使用Console.SetCursorPosition 方法。

      【讨论】:

      • 问题提到了 Linux 控制台,这对它没有太大帮助。
      • 这个方法存在于 Mono 类库中,所以我假设它也适用于 Linux。
      【解决方案3】:

      你总是可以使用类似的东西

      for(;;)
      {
        printf("value: %d", something);
        update_value();
      #ifdef WINDOWS
        system("cls");
      #else
        system("clear");
      #endif
      }
      

      但这是最肮脏的做法 =)

      【讨论】:

        【解决方案4】:

        使用ANSI code sequence 之类的东西来擦除控制台并重新写入。

        如果您只想更新一行,在 UNIX 中您可以使用\r 控制字符转到行首而不转到下一行。任何进一步的写作都将覆盖您所写的内容。

        【讨论】:

          【解决方案5】:

          看看这个thread。我认为那里提供的解决方案可以满足您的需求。

          【讨论】:

            猜你喜欢
            • 2020-03-10
            • 1970-01-01
            • 2010-11-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-11-07
            • 2023-03-27
            相关资源
            最近更新 更多