Russian Qt Forum
Ноябрь 25, 2024, 11:48 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Странное поведение qDebug()  (Прочитано 4214 раз)
Syveren
Гость
« : Май 30, 2013, 14:51 »

Доброе время суток! Есть простейший код
Код
C++ (Qt)
QApplication a(argc, argv);
int N = 128;
for(int i=0;i<N;++i)
  qDebug()<<i<<") ";
return 0;
 
Вывод:
Запускается D:\projects\qt\sound\soundTest\release\soundTest.exe...
0 )  
1 )  
2 )  
...
35 )  
36 )  
D:\projects\qt\sound\soundTest\release\soundTest.exe завершился с кодом 0
Количество выведенных цифр варьируется, но не доходит до конца.
Это только у меня такая фигня или это нормальное поведение?Непонимающий
Записан
mutineer
Гость
« Ответ #1 : Май 30, 2013, 14:55 »

У меня нормально отрабатывает
Записан
LEO
Гость
« Ответ #2 : Май 30, 2013, 15:21 »

от 1-127 включительно... код работает
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Май 30, 2013, 17:35 »

возвращай вместо 0 a.exec() — тогда точно отработает, хоть и не завершится автоматически
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #4 : Май 30, 2013, 21:38 »

>>возвращай вместо 0 a.exec()
это ерунда какая-то. прежде чем управление будет передано на эту строку должен отработать цикл.
Записан

Юра.
Syveren
Гость
« Ответ #5 : Май 30, 2013, 22:25 »

Если вернуть a.exec() резульат нормальный, но программа не завершится.
Сейчас попробовал много-много раз нажимал запуск: иногда и до 127 доходит, но иногда нет (99,120,67...)
У меня Qt 5.0.1 стоит, может qDebug в отельном потоке работает и не успевает все вывести?
А если так:
Код
C++ (Qt)
for(int i=0;i<N;++i)
       std::cout<<i<<"\n";
то работает нормально!
« Последнее редактирование: Май 30, 2013, 22:28 от Syveren » Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #6 : Май 30, 2013, 22:32 »

Syveren ты из командной строки запускаешь, т.е. по завершении программы командная строка остаётся открытой?
Записан

Юра.
Syveren
Гость
« Ответ #7 : Май 30, 2013, 22:33 »

Я через вывод QtCreator'a смотрю, может с ним проблемы?
Сейчас дописал CONFIG+= console, все стало нормально работать! чудеса)
UPD: Как я выяснил данный глюк появляется у меня только, если не стоит CONFIG+= console в pro файле.
Спасибо всем за помощь)
« Последнее редактирование: Май 30, 2013, 22:48 от Syveren » Записан
mutineer
Гость
« Ответ #8 : Май 31, 2013, 09:07 »

qDebug() работает в том же потоке, откуда вызван
Записан
Syveren
Гость
« Ответ #9 : Май 31, 2013, 09:41 »

Сейчас проверил на linuxe все норм и без CONFIG+=console.

Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.306 секунд. Запросов: 23.