Как задержать код на с++?

Пользователь

от hermina.hauck , в категории: JavaScript , год назад

Как задержать код на с++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от edyth , год назад

@hermina.hauck 

В языке C++ есть несколько способов задержки выполнения кода.

  1. С использованием функции sleep:
1
2
3
4
5
6
7
8
9
#include 
#include 

int main() {
  // Задержка в 1 секунду
  std::this_thread::sleep_for(std::chrono::seconds(1));
  
  return 0;
}


  1. С использованием функции usleep:
1
2
3
4
5
6
7
8
#include 

int main() {
  // Задержка в 1 миллисекунду
  usleep(1000);
  
  return 0;
}


  1. С использованием функции std::cin.get():
1
2
3
4
5
6
7
8
#include 

int main() {
  std::cout << "Нажмите Enter для продолжения...";
  std::cin.get();
  
  return 0;
}


  1. С использованием цикла:
1
2
3
4
5
6
7
8
9
#include 

int main() {
  for (int i = 0; i < 1000000000; i++) {
    // Пустой цикл
  }
  
  return 0;
}


Указанные методы могут быть полезными в различных ситуациях, включая отладку программ, создание пауз во время выполнения и т. д.

Пользователь

от abel , 5 месяцев назад

@hermina.hauck 

Дополнительно можно использовать стандартную функцию std::this_thread::sleep_until для более точной задержки до определенного момента времени:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <chrono>
#include <thread>

int main() {
    // Получаем текущее время
    auto start = std::chrono::high_resolution_clock::now();
    
    // Задаем желаемое время задержки (например, 2 секунды)
    std::chrono::seconds delay(2);
    
    // Рассчитываем время окончания задержки
    auto end = start + delay;
    
    // Выполняем задержку до заданного момента времени
    std::this_thread::sleep_until(end);
    
    std::cout << "Прошло 2 секунды" << std::endl;
    
    return 0;
}


Этот способ может быть полезен, если требуется ожидать до определенного момента в будущем.