【发布时间】:2018-05-24 13:47:12
【问题描述】:
我想在 Linux 终端中打印一个更新后的数字,但没有类似的
picture 1
picture 2
picture 3
picture [...]
我已经知道如何用 C 代码做到这一点
printf("\rpicture %d", i);
fflush(stdout);
i 是我的图片编号
我的问题是:是否可以使用std::cout 或类似的简单方法来代替printf?
编辑:
使用std::cout << "\rPicture " << i << "done"; 不如printf 好,因为我没有在终端中看到所有数字滚动
Picture 74 done
Picture 150 done
FPS : 7.89474
picture number : 150
P.S : 我们不是来批评我的 FPS 数字,那是我的程序根本没有优化
【问题讨论】:
-
printf("\rpicture %d", i);--->std::cout << "\rpicture " << i; -
我不这么想,但是试过之后,效果不如printf例子;我现在会用结果更新我的帖子
-
because I didn't see all number scroll in the terminal如果您想查看所有数字,为什么要使用\r?有点不清楚你想做什么。 -
@DimChtz 使用 printf 命令,我看到所有数字都在同一个地方滚动,但是使用 std::cout 命令,效果不如 printf;我只看到“74”和最后一个“150”,好像它比 printf 显示慢很多
-
可能需要刷新缓冲区:
std::cout << "\rpicture " << i << std::flush;