Fra*_*ank 2 c linux newline backspace
如何删除已打印并加载到缓冲区的换行符?据我所知,该\\b字符仅将光标移回到当前行,并且不适用于换行符。我该如何解决这个问题?
如果对问题进行编辑以表明如何发出这种不需要的换行符,将会很有帮助。\xe2\x80\x93 马洪里·莫里安库默
\n\n其实这并非不可取。我想在输出另一种状态之前预览用户的缓冲区的一种状态。然而,我不想连续显示多个缓冲区状态。例如,假设我想显示两个矩阵,
\n\n1 1 1 1\n1 1 1 1\n1 1 1 1\n1 1 1 1\nRun Code Online (Sandbox Code Playgroud)\n\n和
\n\n0 0 0 0\n0 0 0 0\n0 0 0 0\n0 0 0 0\nRun Code Online (Sandbox Code Playgroud)\n\n我想要第二个矩阵替换第一个矩阵。为此,我需要删除第一个矩阵的输出数字。
\n\n也许您可以考虑再次编辑您的问题并指出操作系统和/或终端类型?
\n\n当前运行 Linux (Ubuntu) x64,使用 xterm(确切地说是 ROXTerm)。
\n有两个广泛支持的字符用于覆盖之前写入的内容:\\b退格键(正如您所提到的)和\\r回车符,用于将 \xe2\x80\x98 写入头\xe2\x80\x99 返回到开头线。
如果你想回到上一行,你\xe2\x80\x99并不是完全运气不好,但你\xe2\x80\x99将不得不求助于一些东西,尽管仍然得到广泛支持,特别是终端仿真器,但可能没有得到如此广泛的支持(例如,如果您将其通过管道传输到 ,它可能不会\xe2\x80\x99 工作lp)。我指的是 ANSI 转义序列。\xe2\x80\x99 有很多,但值得注意的是^[[A,它将 \xe2\x80\x98write head\xe2\x80\x99 向上移动一行。(^[这里是ESCASCII 字符,十六进制值0x1B)。要在 C 中使用它:
printf("\\x1B[A"); /* move up one line */\nRun Code Online (Sandbox Code Playgroud)\n