Язык: C++
Суть проблемы: требуется остановить работу цикла после ввода пользователем определенной строки. При этом программа не должна после каждой итерации цикла ожидать ее ввода. Пример простейшей программы:
#include
#include
using namespace std;

int main() {
unsigned long long a=0;
for(;;) {
++a;
usleep(200000);
}
cout << a << endl;
return 0;
}
Данная программа постоянно увеличивает значение a с интервалом в 0.2 секунды. Логично, что программа не достигнет вывода числа a.
Что требуется: после ввода пользователем строки "Stop" (без кавычек) мы выходим из цикла, но до этого пользователь ничего не вводил и цикл работал в стандартном режиме.
Пример
Остановка цикла ровно через 0.1 секунду. Вывод: 1
Остановка цикла ровно через 0.2 секунды. Вывод: 1 (для начала следующей итерации не хватает времени: несколько микросекунд на объявление a, ++a, а также ожидание: 0.2 секунды. И, логично, первое ожидание через 0.2 секунды после начала не закончится)
Остановка цикла ровно через 1 секунду. Вывод: 5
Остановка цикла ровно через 10 секунд. Вывод: 50 (при дальнейшем увеличении времени, логично, операции будут замедляться и темпы увеличения числа немного замедлятся).
Решением будет готовая программа.
Please enter comments
Please enter your name.
Please enter the correct email address.
You must agree before submitting.

Answers & Comments


Copyright © 2024 SCHOLAR.TIPS - All rights reserved.