无法使运输 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);
我对这段代码有疑问:
#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);