Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
sabich
0 / 0 / 0
Регистрация: 24.12.2013
Сообщений: 23
#1

Счетчик в консольном приложении без очистки экрана - C++

05.01.2014, 12:12. Просмотров 420. Ответов 13
Метки нет (Все метки)

Помогите создать счетчик в консольном приложении без system ("cls"). Нужно чтобы не очищался весь экран и отчет был с 03:00 до 00:00, с выводом на экран.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2014, 12:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Счетчик в консольном приложении без очистки экрана (C++):

Таймер в консольном приложении - C++
Подскажите, как сделать чтобы консольное приложение было постоянно запущено и раз в 1 минуту выполняло одну из функций? Добавлено...

WxWidgets - в консольном приложении - C++
Начал изучение библиотек wxWidgets в Code Blocks, столкнулся с проблемой компиляции, вроде все подключено,просто строку в консоль выводит а...

Графика в консольном приложении VS - C++
подскажите как построить систему координат X,Y. в консольном приложении.Какие модули следует подключать и порядок ввода вывода линий и...

Таблица в консольном приложении - C++
Здравствуйте. Помогите пожалуйста советом, как организовать таблицу в консольном приложении? Таблица состоит из n строк и 2 столбцов.

Вывод в консольном приложении - C++
Мне надо после 19 вернуться на прежнюю строку. Что бы после 19 числа начали выводиться вверх ( по спирали, и что бы ничего не стиралось )....

Ошибка в консольном приложении - C++
{ class Program { public struct Point { public int X; public int Y; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
0x10
2463 / 1635 / 238
Регистрация: 24.11.2012
Сообщений: 4,023
05.01.2014, 12:16 #2
printf("\r") - возврат каретки, дальше все просто.
1
sabich
0 / 0 / 0
Регистрация: 24.12.2013
Сообщений: 23
05.01.2014, 12:34  [ТС] #3
0x10, С "/r" у меня не получается не затирает предыдущие цифры
0
0x10
2463 / 1635 / 238
Регистрация: 24.11.2012
Сообщений: 4,023
05.01.2014, 12:35 #4
sabich, сходу вижу слеш не в ту сторону. Покажите код, на котором проявляется проблема.
1
sabich
0 / 0 / 0
Регистрация: 24.12.2013
Сообщений: 23
05.01.2014, 12:51  [ТС] #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
using namespace std;
 
int main ()
{
for (int i=0; i<60; ++i)
{
    cout << "00:" << i;
    for (int j=0; j>=1000;++j)
    cout << "\r";
}
return 0;
}
Добавлено через 1 минуту
0x10, /r это просто опечатка.
0
0x10
2463 / 1635 / 238
Регистрация: 24.11.2012
Сообщений: 4,023
05.01.2014, 12:52 #6
Жестоко как-то.
Второй цикл не будет выполнен ни разу. Да и не нужен он.

Добавлено через 29 секунд
Hint: проще всего время представить в секундах.
1
sabich
0 / 0 / 0
Регистрация: 24.12.2013
Сообщений: 23
05.01.2014, 13:04  [ТС] #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
using namespace std;
 
int main ()
{
for (int i=0; i<60; ++i)
{
    cout << "00:" << i;
    for (int j=0; j<=1000;++j)
    cout << "\r";
}
return 0;
}
второй цикл для задержки, вот так работает, но как сделать задержку в секунду?
0
0x10
2463 / 1635 / 238
Регистрация: 24.11.2012
Сообщений: 4,023
05.01.2014, 13:07 #8
Эх...
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <unistd.h>
 
int main()
{
    int seconds_left = 3 * 60;
 
    while (seconds_left >= 0)
    {
        printf("%02d:%02d", seconds_left / 60, seconds_left % 60);
        fflush(stdout);
 
        --seconds_left;
 
        sleep(1);
        printf("\r");
    }
 
    return 0;
}
Добавлено через 46 секунд
Под настроение можно переписать на плюсовые потоки.
1
sabich
0 / 0 / 0
Регистрация: 24.12.2013
Сообщений: 23
05.01.2014, 13:16  [ТС] #9
инструкция sleep(1); на разных ПК работает по разному по-этому не совсем подходит. Вы судя по всему в unix системе пишите, для винды нужно подключать библиотеку windows.h и команда будет Sleep (1);
0
0x10
2463 / 1635 / 238
Регистрация: 24.11.2012
Сообщений: 4,023
05.01.2014, 13:22 #10
Цитата Сообщение от sabich Посмотреть сообщение
нужно подключать библиотеку windows.h
Заголовочный файл.

Задача достаточно мелкая, чтобы на это можно было забить. Предполагается, что одну строчку вы в состоянии исправить под свои нужды. Если нужна кроссплатформенность, есть http://en.cppreference.com/w/cpp/thread/sleep_for , но с оговоркой на С++11.
1
sabich
0 / 0 / 0
Регистрация: 24.12.2013
Сообщений: 23
05.01.2014, 13:32  [ТС] #11
все равно программа у меня отрабатывает меньше чем за 2 секунды!
0
0x10
2463 / 1635 / 238
Регистрация: 24.11.2012
Сообщений: 4,023
05.01.2014, 13:35 #12
sabich, Sleep(1000) - виндовая функция принимает миллисекунды.
1
sabich
0 / 0 / 0
Регистрация: 24.12.2013
Сообщений: 23
05.01.2014, 13:43  [ТС] #13
0x10, Ветка вроде "С++ для начинающих", поэтому желательно чтобы код был на с++. Спасибо, что откликнулись, вроде все работает сейчас буду на с++ переделывать.
0
0x10
2463 / 1635 / 238
Регистрация: 24.11.2012
Сообщений: 4,023
05.01.2014, 13:53 #14
sabich, Раздел-то плюсовый, да только зачастую тут мелькают задачи чисто сишные, просто потому, что раздел первый в списке.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <iomanip>
 
#include <unistd.h>
 
int main()
{
    int seconds_left = 10;
 
    while (seconds_left >= 0)
    {
        std::cout
            << std::setw(2)
            << std::setfill('0')
            << seconds_left / 60
            << ":"
            << std::setw(2)
            << std::setfill('0')
            << seconds_left % 60;
 
        std::cout.flush();
 
        --seconds_left;
 
        sleep(1);
        std::cout << "\r";
    }
 
    return 0;
}
Мб можно короче.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2014, 13:53
Привет! Вот еще темы с ответами:

Графика в консольном приложении - C++
Помогите создать приблизительно такую штуку, которая будет высвечиваться при запуске консольной программы, и по нажатию на любую клавишу...

Меню в консольном приложении - C++
есть ошибки не могу исправить #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;ctime&gt; #include &lt;cstdlib&gt; using namespace std; ...

Тетрис в консольном приложении - C++
Помогите с написанием тетриса в консоли, пожалуйста. Как сделать поле, и чтобы по нему передвигалась фигура? И чтобы можно было стрелками...

Таймер в консольном приложении - C++
Всем доброго времени суток, у меня вопрос, как сделать так, чтобы программа записывала текст в файл, а, к примеру через 40 минут стирала...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
05.01.2014, 13:53
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru