为什么控制台会覆盖输出

Why does the console overwrite output?

本文关键字:输出 覆盖 控制台 为什么      更新时间:2023-10-16

我正在为一个大约 8000 个 ID 的文件编写一个 csv 文件解析器。运行时,在读取和打印大约一半的 Id 后,Clion 控制台开始覆盖第一个输出,以便在运行结束时,控制台中的第一个 Id 输出是第 2626 个,而不是第一个。我的代码中有什么原因造成的?

在交换机启动之前打印每个读取字符时,输出完成。当我将 csv 中的数量缩短到 6000 左右时,它也适用于较少数量的 ID。

int main() {
string buffer;
char zeichen;
ifstream eingabe;
eingabe.open("../lib/Daten.csv");
int zustand=0;//0=Token, 1=Werte
if(eingabe){
    while(!eingabe.eof()) {
        eingabe.get(zeichen);
        //cout<<zeichen; // with only this it works
        switch(zeichen){
            case';':
                if(zustand==0){
                    cout<<"Token: "<<buffer<<"; ";
                }
                else if(zustand==1){
                    cout<<"Wert: "<<buffer<<"; ";
                }
                buffer="";
                break;
            case'n':
                if(zustand==0){
                    zustand=1;
                    cout<<"Token: "<<buffer<<endl;
                }
                else if(zustand==1){
                    cout<<"Wert: "<<buffer<<endl;
                }
                buffer="";
                break;
            default:
                buffer+=zeichen;
                break;
        }
    }
}
eingabe.close();
   return 0;
}

评论中所有乐于助人的人都回答了这个问题。它似乎与克里昂有关