复卷的std ::法院去回行的开头
-
27-09-2019 - |
题
我正在写的Mac OS X的命令行工具,其处理一堆文件。我想向用户显示当前正在处理的文件中,但不希望bazillion文件污染终端窗口。
相反,我想用单条线,以输出该文件的路径,然后再使用该线对的下一个文件。是否有一个字符(或其他代码)输出到std::cout
做到这一点?
另外,如果我想重新定位该工具适用于Windows,将解决方案是两个平台一样?
解决方案
“\ R” 应适用于Windows和Mac OS X
是这样的:
std::cout << "will not see this\rwill see this" << std::flush;
std::cout << std::endl; // all done
其他提示
我没有访问MAC,但由纯控制台的角度来看,这将在很大程度上依赖于它如何对待回车和换行字符。如果你可以从字面上发送一个或另一个控制台,您要发送的只是的回车。
我敢肯定的Mac处理二者的回车和换行的饲料不同于* nix中和Windows。
如果你正在寻找就地更新(例如覆盖当前行),我建议你看curses
库。这应该提供一个平台,做你在找什么的独立的手段。 (因为,即使使用标准C ++,还有你问什么的没有独立于平台的方式)。
的std :: COUT interpretes为 “\ r” 作为返回到该行的开头,如果你不whant被加入 “<< ENDL” 每一次,使用 “\ n” 个
std::cout << "this will work!\nSee... a new line!" << std::endl;
不隶属于 StackOverflow