从cout中删除输出到控制台的最后一行?

Joh*_*vas 3 c++

制作一个具有百分比进度条的程序,但它真的很垃圾.它创造了100,000个数字,并显示实际进度有多远,1%2%3%的感觉,唯一的问题是,它正在使控制台充满这些数字,每百分比增加约一千个.

它可能无关紧要,但是我正在使用的代码

int testing() {
    cout << "Open file\n";
    fstream outFile("text.txt", ios::out);
    int number = 100000;
    for (int i = 1; i != number + 1; i++) {
        outFile << i << endl;
        cout << (i / 1000) << endl;
        //cout << clearLastLine();
    }
    outFile.close();
    cout << "File Closed\n";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

评论的cout是我想要使用的(据我所知不存在).每次cout << i/1000 << endl;触发时,我都希望它删除它只是放入控制台窗口的数字,因此可以用下一个数字替换它.这可能吗?如果是的话,我很想知道 - 谢谢. - 下面这张图片显示了我希望它清除输出的最后一行的原因. 大量99%然后100%收盘

新的代码使它更少垃圾,但我仍然最终得到100行控制台我不想要,但我仍然希望显示最新的数字,只有其他人不要.

int testing() {
    cout << "Open file\n";
    fstream outFile("text.txt", ios::out);
    int number = 100000;
    int percentifier = number * .01; // added this so I can change number to be anything I want
    int temp2 = 0;
    for (int i = 1; i != number + 1; i++) {
        outFile << i << endl;
        int temp = i / percentifier;
        if (temp != temp2) {
            //cout << clearLastLine();
            cout << (temp) << "%" << endl;
        }
        temp2 = i / percentifier;
    }
    outFile.close();
    cout << "File Closed\n";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Joh*_*vas 5

好吧,既然我已经更加完善了我的问题,那么我正在寻找答案的问题就出现在一个可能的答案列表中.低,看,我找到了我想要的东西.

使用'\ r'修饰符,而不是endl; 在我cout << (temp) << "%" << endl;写入时删除当前行,并用下一个数字覆盖它.