0 / 0 / 0
Регистрация: 07.09.2011
Сообщений: 11
|
|
1 | |
Простейшая индикация выполнения в консоли.09.09.2011, 11:01. Показов 7000. Ответов 23
Метки нет Все метки)
(
Привет всем форумчанам!
Пишу небольшую консольную утилитку. В конце отладки выяснилось что трудно догадаться чем в данный момент занимается утилита. Встал вопрос реализации некой анимации - индикатора выполнения. Например крутящийся "/". Как это лучше реализовать? Заранее спасибо!
0
|
09.09.2011, 11:01 | |
Ответы с готовыми решениями:
23
Результат выполнения программы в консоли пропадает после выполнения скрипта Ожидание выполнения команды в консоли
|
Делаю внезапно и красиво
![]() ![]() 1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
09.09.2011, 11:20 | 2 |
Перемещать курсор в заданную позицию и выводить последовательно символы \ | / -
Как переводить курсор зависит от используемой IDE и библиотек. В соседних темах поищи.
0
|
![]() |
||||||
09.09.2011, 11:22 | 3 | |||||
Вот.
0
|
0 / 0 / 0
Регистрация: 07.09.2011
Сообщений: 11
|
|
09.09.2011, 11:42 [ТС] | 4 |
Код
COORD pos = { 10, 10 }; // позиция вывода анимации
0
|
Делаю внезапно и красиво
![]() ![]() 1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
09.09.2011, 11:53 | 5 |
0
|
![]() 3571 / 2718 / 348
Регистрация: 11.03.2009
Сообщений: 6,261
|
|
09.09.2011, 12:01 | 6 |
0
|
Делаю внезапно и красиво
![]() ![]() 1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
09.09.2011, 12:13 | 7 |
Это удалит последний введённый символ.
А если изменить нужно первый символ или в середине? Тогда уж проще вообще всё перепечатать.) Добавлено через 2 минуты Может, лучше выводить проценты или даже текстовые описания текущих действий? Простой \|/- не сделает понятнее. Будет лишь ясно, что не подвисла программа.
0
|
![]() 3571 / 2718 / 348
Регистрация: 11.03.2009
Сообщений: 6,261
|
|
09.09.2011, 12:20 | 8 |
0
|
![]() ![]() |
|
09.09.2011, 12:23 | 9 |
![]() Решение
6
|
Делаю внезапно и красиво
![]() ![]() 1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
09.09.2011, 12:26 | 10 |
Класс! Не знал про таймер.) Надо получше в бусте покопаться, ещё вкусняшек поискать.)
0
|
0 / 0 / 0
Регистрация: 07.09.2011
Сообщений: 11
|
|
09.09.2011, 15:42 [ТС] | 11 |
Добавлено через 2 часа 27 минут UPD. Возникла неожиданная проблема в самом конце. не связано с выводом на экран, но чтобы не плодить темы спрошу здесь. Почему метод close из fstream вызывает исключение? у меня вызывается несколько файлов. и при закрытии одного из них происходит вылет с исклюением. код типа этого Код
ifstream Myfile ("file.type"); ... ... ... Работа с файлом ... ... .. Myfile.close();
0
|
Делаю внезапно и красиво
![]() ![]() 1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
09.09.2011, 15:48 | 12 |
Файл не был открыт. Был закрыт до этого. Была ошибка в процессе чтения. Мало ли что.
Если у тебя не допотопный компилятор, то может и не быть потребности в явном вызове close(), но в нормальных условиях должно было нормально закрыться поток.
1
|
0 / 0 / 0
Регистрация: 07.09.2011
Сообщений: 11
|
|
09.09.2011, 16:26 [ТС] | 13 |
Однако в конце всех манипуляций мне нужно удалить этот файл. А DeleteFile не удаляет, возвращает NULL.Вот я и решил что нужно б закрыть для начала. И все, приехал. А в процессе работы я его всего лишь считываю посимвольно (get) до самого конца и все. Добавлено через 33 минуты Нет, я все равно не вкурю. Код
loop_reading: //начало цикла чтения файла cout << progress_symbol[pos]; cout << '\b'; if(++wait_to_change > 10) { wait_to_change = 0; if(++pos > 3) pos = 0; } int symb_position; symb_position = 0; ifstream DataLog("DATA.log"); if(!DataLog) { goto loop_reading; } cond_file_size = 0; for(;!DataLog.eof();) { str1[symb_position] = DataLog.get(); cond_file_size++; if(++symb_position >= sizeof(str1)) { for(int s = 0; s < (sizeof(str1) - 1); s++) str1[s] = str1[s+1]; symb_position--; } } DataLog.close(); ...
0
|
![]() |
|
09.09.2011, 17:02 | 14 |
Deviaphan, а разве от компилятора это зависит?
NWR, код, который выбрасывает исключение, окружите блоком try ... catch(), поймайте нужное вам исключение. У всех объектов исключения STL есть функция what(), которая возвращает char* на строку с объяснением ошибки.
0
|
Делаю внезапно и красиво
![]() ![]() 1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
09.09.2011, 17:05 | 15 |
Как выяснилось в соседней теме, Borland C++ for DOS не закрывает поток в деструкторе.
0
|
Модератор
![]() ![]() ![]() ![]() ![]() 12836 / 7572 / 1765
Регистрация: 25.07.2009
Сообщений: 13,969
|
||||||
09.09.2011, 17:55 | 16 | |||||
А файл читается правильно?
1
|
![]() 3571 / 2718 / 348
Регистрация: 11.03.2009
Сообщений: 6,261
|
|
10.09.2011, 03:13 | 17 |
А точно его вызывает close?
Жесть... файл не может открыться по какой-либо причине, допустим отсутствие такового на диске, в результате с такой конструкцией получим вечный цикл, но зато с анимацией бурной деятельности ![]()
0
|
0 / 0 / 0
Регистрация: 07.09.2011
Сообщений: 11
|
|
10.09.2011, 08:55 [ТС] | 18 |
Индикация выполнения отрабатывает. С этим проблем нет. И файл читается на удивление правильно.
0
|
![]() 3571 / 2718 / 348
Регистрация: 11.03.2009
Сообщений: 6,261
|
|
10.09.2011, 09:05 | 19 |
отсутствие файла на диске это одна из многих причин. В любом случае эта часть кода бессмысленна.
0
|
0 / 0 / 0
Регистрация: 07.09.2011
Сообщений: 11
|
|
10.09.2011, 09:39 [ТС] | 20 |
Мля. Оказалось что после чтения, исключение способны вызвать еще и clear и seekg(0,ios::beg). Что за грабли такие...Пошел делать catch...
0
|
10.09.2011, 09:39 | |
10.09.2011, 09:39 | |
Помогаю со студенческими работами здесь
20
PyCharm Edu 4.0: нет результата выполнения программы в консоли Скрытие окна консоли во время выполнения приложения Задержка окна консоли после выполнения кода Действие при закрытии консоли во время выполнения скрипта Открытие консоли на определенном этапе выполнения CMD-скрипта Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
![]() |
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Язык программирования C++: сравнение с другими языками
Programming 06.02.2025
Современная разработка программного обеспечения предлагает множество языков программирования, каждый из которых обладает уникальными характеристиками и областями применения. C++ занимает особое место. . .
|
Язык программирования C++: достоинства и недостатки
Programming 06.02.2025
C++ считается одним из самых влиятельных языков программирования, продолжающим занимать ведущие позиции в мире разработки программного обеспечения. Этот язык появился как расширение языка C с. . .
|
Регулярные выражения в Python
BasicMan 06.02.2025
Регулярные выражения - это последовательности символов, определяющие правила поиска и сопоставления текстовых данных. В Python они используются для поиска подстрок, проверки соответствия текста. . .
|
Как создать свой мод для Майнкрафт с нуля на Java
IT_Exp 06.02.2025
Разработка мода для Minecraft начинается с правильной настройки среды разработки. Для создания мода потребуется Java Development Kit (JDK), интегрированная среда разработки и Minecraft Forge. JDK. . .
|
Async/await и асинхронное программирование в Java
IT_Exp 06.02.2025
Асинхронное программирование - это подход к организации вычислительных процессов, позволяющий приложениям эффективно использовать доступные ресурсы системы. В контексте Java этот метод приобретает. . .
|
Как исправить android.os.NetworkOnMainThreadException
hw_wired 06.02.2025
Исключение NetworkOnMainThreadException возникает при попытке выполнить сетевые операции в главном потоке Android-приложения. Главный поток отвечает за обработку пользовательского интерфейса и должен. . .
|
Как в Java определить, что массив содержит определенное значение
hw_wired 06.02.2025
В Java класс Arrays предлагает несколько способов для проверки наличия значений в массивах. Наиболее широко применяемый метод заключается в использовании комбинации Arrays. asList() и contains(). . . .
|
Как использовать virtualenv в Python. Виртуальные среды/окружения
hw_wired 06.02.2025
В Python виртуальные окружения решают одну из ключевых задач разработки - изоляцию зависимостей между проектами. Virtualenv создает отдельное пространство для каждого проекта, где устанавливаются. . .
|
Кнопка в HTML, которая работает как ссылка
hw_wired 06.02.2025
В HTML существует несколько подходов к созданию кнопки, которая функционирует как ссылка. Базовым элементом выступает тег button, который можно преобразовать в ссылку с помощью JavaScript. Для этого. . .
|
Как обновить страницу с помощью JavaScript
bytestream 06.02.2025
JavaScript предоставляет несколько базовых методов для обновления веб-страницы, которые встроены непосредственно в язык и доступны через объектную модель браузера. Основной метод обновления страницы. . .
|