控制台应用程序 - 返回上一行并将文本添加到当前行

Console application - go back up one line and add text to current line

我已经搜索这个有一段时间了,但一直没有找到如何做的运气。

我想 return 到上一行,并向其添加文本,例如以下

例如 当 运行 make 在某些 linux makefile 上时,我注意到以下内容:

checking file ...... done
checking file2 ...... done
checking file3-long name ...... done
checking file4 ...... done
//etc

这将使用类似且基本的伪代码概念来完成(据我所知和理解)。

std::cout << "checking: " << fileName << " ........ " << std::endl;
runCheck(fileName)
std::cout << "done" << std::endl;

这将输出:

checking: {fileName} ........

done

有什么方法可以在省略号后面加上 done 吗?

我记得在 ncurses 和其他一些库上读过一些东西,但如果这可以纯粹使用 Qt 来完成,我更愿意

提前致谢

这不是通过备份一行来完成的。相反,该行的初始部分不带换行符输出,然后当 "done" 部分被打印时,它继续当前行。这实际上不是 Qt 问题;您的示例代码是没有任何 Qt 的纯 C++,但是您需要做的就是从打印 "checking:".

的行中删除 "std::endl"

我认为这在经典的控制台应用程序中是不可能的。控制台只是一个流,你不能回去改变东西,已经完成了。如果要表示更新,则输出与更新相同的行。

或者,如果您只想在同一行添加 done,则跳过最后的 std::endl。那就根本不用回去了