2011-09-27 10 views
9

Widziałem to pytanie już na tym forum, ale nie wiem, dlaczego proponowana odpowiedź nie działa w moim przypadku. Próbuję więc poprosić o inne rozmyślania.Standardowe wyjście Qt. cout nie drukuje

Jestem kompletnym programistą w programowaniu w języku C++. Właśnie dostałem moje Qt crator działające pod Linuksem.

nie rozumiem dlaczego moim:

cout << "This does not appear"; 

nie drukuje w konsoli podczas qdebug robi

qDebug() << "This appears"; 

to, co jest zawarte w moim .pro pliku:

QT  += core gui 

TARGET = aaa 
TEMPLATE = app 


SOURCES += main.cpp\ 
     mainwindow.cpp \ 
    IeplcModule.cpp 

HEADERS += mainwindow.h \ 
    IeplcModule.h 

FORMS += mainwindow.ui 

#enable console 
CONFIG += console 

Każdy pomysł?

Cheers,

Stefano

+2

'cout <<" Nie pojawia się "<< flush;' Może ten? – Michas

+1

Czy dane wyjściowe pojawiają się, gdy program się zatrzymuje? Jeśli tak, to prawdopodobnie tylko brakujący flush (dodaj std :: endl) – Steffen

+0

na jakiej platformie jesteś? – vickirk

Odpowiedz

20

Spróbuj z cout << "asdf" << endl;

Ewentualnie Qt konfiguruje iostream w celu przepłukania tylko w nowej linii.

+5

+1 Dla poprawnej odpowiedzi i wyjaśnienia, przy okazji nie sugerowałeś używania qDebug() tak jak wszyscy. – RajaRaviVarma

+0

W rzeczywistości 'endl' jest poleceniem nowej linii * plus * flush. Podobne do '" \ n "<< flush' – steffen

0

Czy byłeś #include <iostream>? Nie widziałem żadnych włączeń w kodzie. Zakładam, że qdebug i cout są bardzo podobne.

+1

To pytanie zostało już rozwiązane przez zaakceptowaną odpowiedź. –