Задержка времени выполнения в консоли С++
Такой вот сакраментальный вопрос... то есть, не "пауза до нажатия клавиши", а именно задержка на нужное время.
Конечно, можно использовать Sleep (milliseconds) на платформе Windows или usleep (microseconds) на unix-платформах, но как-то безблагодатно и не кроссплатформенно.
Нестандартных функций вроде delay
из библиотеки dos.h
тем более не надо.
Можно, конечно, поизвращаться с циклом на функциях библиотеки ctime, но нормальное решение, пожалуй, возможно только на платформе C++11, вот пример, проверенный в консоли Visual Studio 2015:
#include <iostream> //Поключить 2 библиотеки: #include <chrono> #include <thread> using namespace std; //И эти 2 пространства имён: using namespace std::this_thread; using namespace std::chrono; int main() { cout << "Pause 1 sec..."; sleep_for(milliseconds(1000)); cout << " OK, press Enter to exit"; cin.get(); return 0; }
На основе библиотеки ctime
код может быть в простейшем случае таким:
#include <iostream> #include <ctime> using namespace std; void mypause(unsigned int delay) { time_t start, end; double d; start = time(0); while (1) { end = time(0); d = difftime(end, start); if (d >= delay) break; } } int main() { cout << "Pause 1 sec..."; mypause (1); //Стандартные функции работают с секундами! cout << " OK, press Enter to exit"; cin.get(); return 0; }
05.05.2019, 15:21 [3048 просмотров]