Avatar ·

Como fazer uma pausa (atraso) em C++ por um determinado número de milissegundos?

Olá! Estou escrevendo um programa simples de console em C++ no Linux. Preciso que o programa faça uma pausa de alguns milissegundos (por exemplo, 500 ms) entre saídas de texto ou execução de algumas ações. \n\nSou iniciante e até agora tentei apenas `sleep(1)` de ``, mas isso funciona apenas para segundos. E eu preciso de um atraso em milissegundos. Ouvi dizer que existe `usleep()`, mas em algumas fontes dizem que está obsoleto, e também não está claro como usá-lo corretamente.\n\nAqui está um exemplo do meu código que não funciona como eu quero:\n\n```cpp\n#include \n#include \n\nint main() {\n std::cout << "Início..." << std::endl;\n sleep(0.5); // Quero 500 ms, mas sleep aceita apenas segundos inteiros\n std::cout << "Passaram 500 ms?" << std::endl;\n return 0;\n}\n```\n\nObviamente, `sleep(0.5)` não funcionará, pois o argumento deve ser um número inteiro.\n\nPor favor, me diga como fazer corretamente um atraso em C++ para milissegundos? De preferência com um exemplo de código. Desde já, obrigado.