控制台应用程序 - 返回上一行并将文本添加到当前行
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
。那就根本不用回去了
我已经搜索这个有一段时间了,但一直没有找到如何做的运气。
我想 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
。那就根本不用回去了