Проблема с sleep внутри цикла while C++
Есть вот такой код:
void delayed_letter_output(std::string words){
int i = 0;
while(words[i] != '\0'){
std::cout << words[i];
i++;
sleep(1);
}
std::cout << std::endl;
По идеи он должен выводить буквы по очереди через каждую секунду, однако при запуске он сначала ждет, а потом выводит текст за раз, почему так?