为什么vscode无视各输出间停顿时间同时输出所有结果?(语言-c++|操作系统-ubuntu)

(系统是Ubuntu20.04)

#include <iostream>
#include <unistd.h>
using namespace std;
int main()
{
    cout<<"I like cats.";
    sleep(3);
    cout<<'\r';
    cout<<"I like dogs.";
    cout<<endl;
    return 0;
}

在vscode里运行以上代码,不是像windows系统的DEV C++或Visual C++那样:先显示“I like cats.”,持续3秒后,原输出刷新成“I like dogs.”。而是只在等待3秒后显示最终的“I like dogs.”。(输出结果显示在Terminal)

img

#include <iostream>
#include <unistd.h>
using namespace std;
int main()
{
    cout<<"I like cats.";
    sleep(3);
    //cout<<'\r';
    cout<<"I like dogs.";
    cout<<endl;
    return 0;
}

而把输出表示不换行回到当前行首的'\r'删除后(如上所示),点击运行,一开始什么动静都没,在等待3s后同时输出了“I like cats.”和“I like dogs.”。

img

请问在vscode里应该怎样操作才能有第一段里DEV C++那样的效果呢?

#include <iostream>

#include <unistd.h>

using namespace std;

int main()
{
    cout<<"I like cats."<<flush;
    sleep(3);
    cout<<'\r';
    cout<<"I like dogs."<<endl;
    return 0;
}

运行结果:

img