我正在尝试在 Ubuntu 中使用 c 创建简单的应用程序,它将文件夹复制到其他地方。每个文件都必须在单独的线程中复制,在控制台中我想查看每个复制文件的进度。通常我使用
printf("document1.txt ####### %d \n", progress);
我知道我可以使用\r 覆盖一行 但是我怎样才能在行之间移动呢?
我只想在控制台中看到这样的内容:
document1.txt: ###########=> 30% is done
video1.txt: ##=> 5% is done
video2.txt: ######################=> 70% is done
最佳答案
参见ANSI escape code, on Wikipedia 。正如 Ahmed Masud 指出的那样,curses/ncurses 库将 API 置于这些代码序列之上。
一种常见的方法是简单地清除屏幕并打印整页数据。如今,大多数系统执行此操作的速度足够快,可以接受可接受的无闪烁,但仅写入屏幕上已更改的单元格,更可靠地无闪烁。
编辑:其他引用:
关于c - 如何在Linux控制台中显示多个进度条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47115822/