Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.60
glaxe
0 / 0 / 0
Регистрация: 05.06.2010
Сообщений: 3
#1

Не работает printf без \n в цикле for - C++

05.06.2010, 10:01. Просмотров 2204. Ответов 4
Метки нет (Все метки)

Вообще задача: выводить процент завершения процесса без перехода на новую строку и без мигания курсора.

В одной функции в цикле while такой вариант выводит:

http://www.cyberforum.ru/cpp-beginners/thread1117423.html
C++
1
printf("\rREAD STRUCT: %-30s \t %.2f\tMB",Name,float32(nTotalByte)/1024/1024);
Но при этом мигающий прямоугольничик в консоле постоянно прыгает по строке (Как этого избежать?)

Другая проблема: в другой функции пишу цикл:

C++
1
2
3
4
5
6
7
8
9
10
for (uint32 iX = 0; iX < nXCell; iX++)
{
       printf("\rPERCENT DONE: %.2f\n",float32(iX+1)/nXCell*100);
       
       for (....................)
       {
          ................... //Разные вычисления по времени минимум около 8с
       }
}
printf("\n");
В строке вообще ни чего не выводит пока не дойдет до printf("\n");

Компилировать пробовал и без оптимизации и с оптимизацией.

Компилитор пробовал: g++, SunStudio12.1/c++
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2010, 10:01
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Не работает printf без \n в цикле for (C++):

Можете переписать код без указаетелей и без printf\scanf?
#include &lt;stdio.h&gt; #include &lt;time.h&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt;...

Программа падает без printf
Пишу простую программу, которая в цикле запускает другую, меняя один из...

Как вывести без cout и printf
// ConsoleApplication14.cpp: определяет точку входа для консольного приложения....

Printf не работает
Здравствуйте. В такой вот, пародии на программку последний printf ничего не...

почему PRINTF не работает?
есть файл с следующим содержаним: aa fr ab ty ac qw .. az re нужно найти...

4
Evg
Эксперт CАвтор FAQ
18937 / 6898 / 512
Регистрация: 30.03.2009
Сообщений: 19,432
Записей в блоге: 30
05.06.2010, 10:19 #2
Цитата Сообщение от glaxe Посмотреть сообщение
В строке вообще ни чего не выводит пока не дойдет до printf("\n");
При работе printf строка вывода буфферизуется: т.е. пока не наткнулись на перевод строки или программа не завершила работу, реальная печать не происходит. В таких случаях нужно принудительно сбрасывать буффер: после printf'а добавь fflush (stdout);
0
glaxe
0 / 0 / 0
Регистрация: 05.06.2010
Сообщений: 3
05.06.2010, 14:02  [ТС] #3
Большое спасибо! Кстати теперь курсор не бегает по всей строке =),

ОДнако странно, что при цикле while вывод всетаки был
0
Evg
Эксперт CАвтор FAQ
18937 / 6898 / 512
Регистрация: 30.03.2009
Сообщений: 19,432
Записей в блоге: 30
05.06.2010, 14:55 #4
Цитата Сообщение от glaxe Посмотреть сообщение
ОДнако странно, что при цикле while вывод всетаки был
Забыл написать. Ещё один критерий, по которому сбрасывается буффер - это его заполнение. Т.е. если писать большой объём данных без перевода строки, то они будут сбрасываться кусками в размер буффера
0
glaxe
0 / 0 / 0
Регистрация: 05.06.2010
Сообщений: 3
05.06.2010, 15:09  [ТС] #5
Ясно, СПАСИБО!
0
05.06.2010, 15:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2010, 15:09
Привет! Вот еще темы с решениями:

почему не работает printf? С++
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; void main()...

Не работает printf в VS 2008
Здравствуйте . Написал несколько небольших проектов на С в VS2008 ,и нигде в...

Тупо не работает функция printf...
BCB 5.0 нормально программу компилирует и выполняет - никаких ошибок нет - а...

Не работает программа через printf и scanf
Нужно написать программу, которая бы выводила таблицу через printf и scanf,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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