Всем доброго времени суток.
Который день гуглю тему в сторону создания таймера в консоли на с++
немогу найти решения как сделать таймер с выводом не посторчно а с выводом в одну строку
тоесть чтоб небыло кучи строк с каждой цифрой а просто изменялись цифрыvoid timer(int seconds)
{
clock_t endwait;
endwait = clock () + (seconds * 60);
while (clock() < endwait)
{
std :: cout << "time passed: " << (double)clock()<<"\n";
// sleep(1);
std :: cout << "\b";
}
}
void* thread1(void *)
{
timer(2);
pthread_exit(NULL);
}есть ли варианты?
>[оверквотинг удален]
>
> }
>}
>void* thread1(void *)
>{
> timer(2);
> pthread_exit(NULL);
>}
>
>есть ли варианты?В строке С есть понятие управляющие символы
'\b' - возврат на одну позицию назад
cout<<" time passed:";for(;;){
...
cout<<"\b"<<(double)clock(); // здесь нужно учитывать количество символов
}
> cout<<"\b"<<(double)clock(); // здесь нужно учитывать количество символовИли пользоватся "\r"
библиотека ncurses - разве не решение проблемы?
>есть ли варианты?Например:
while (...) { // print count
int count = ...;
fpos_t x;
fgetpos(stderr, &x);
fprintf(stderr, "%d\r", count);
fsetpos(stderr, &x);
}