c++ - 如果 printf ("%c%c",'A' ,8);删除A,为什么不能printf ("%c%c",'\n' ,8);删除新行?我该怎么做?

标签 c++ c printf newline

如何在 C 代码中删除换行符?我想写一堆行并删除它们,然后在暂停后打印一些其他行然后删除它们......在一个循环中。就像无需滚动的实时更新。我可以打印字符并通过打印退格字符删除它们,但是一旦我打印新行,我就无法删除创建的行。有什么办法可以实现吗?

最佳答案

退格字符 '\b' (ASCII 8) 移动行内的上一个位置。

如果您在 xtermvt100 下兼容,您可以使用 console codes :

#include <stdio.h>
#include <unistd.h> /* for sleep() */

int main(void)
{
    printf("Line\n");
    sleep(2);
    printf("\033[A"); /* move cursor one line up */
    printf("\033[K"); /* delete line */
    return 0;
}

作为替代方案,您可以查看 ncurses (Unix) 或 conio2 ( window /MINGW)

关于c++ - 如果 printf ("%c%c",'A' ,8);删除A,为什么不能printf ("%c%c",'\n' ,8);删除新行?我该怎么做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18515969/

相关文章:

c - printf什么时候打印失败?

C 字符无缘无故地加起来

c++ - Win CE 上的 process.h

c - 用 C 语言学习 GLADE 的最好/最快的方法是什么?

c - 为什么 sum 的值是负的?

c - 尝试创建多个 if-else 条件

c++ - C++ printf 函数中的参数化前导零

c++ - 使用c++从文件中读取特定行

c++ - 由注销的 XP 用户启动的应用程序可以在不同用户的桌面上看到

c++ - 如何返回通用迭代器(独立于特定容器)?