无法使运输 return 在 linux 上运行

Not able to make carriage return work on linux

我对这段代码有疑问:

#include <iostream>
#include <math.h>
#include <unistd.h>
#include <string>
#include <iostream>
#include <stdio.h>

using std::cout; using std::cerr;
using std::cin;  using std::string;
using std::endl;

int main(int argc,char* argv[])
{
    for(int x = 0; x <= 2013; x++)
    {

        cout << "Iteration: "<< x << "\r";
        cout << "";

    }

    return 0;
}

我需要我的代码来打印 "Iteration: 0",而不仅仅是将 0 刷新为 1,2,3,4...。所有内容都在一个控制台行上。我用回车 return 但它不起作用,一行一行打印,就像我使用“\n”时一样。环境是 linux 64 位。 IDE 是 eclipse 8.01.

你必须把它放在行首:

cout << "\rIteration: "<< x;

编辑:我已经测试了对原始 OP 代码的修改,它打印了他想要的内容。另外,Oh dear look what I've found

此外,正如@Wintermute 所建议的,您可以在 for 循环内执行以下操作,以获得更好的可视化效果:

cout << "\rIteration: "<< x << std::flush;
sleep(1);