我正在写的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;

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top