Qt-standard-Ausgabe. cout nicht drucken
Sah ich diese Frage schon in diesem forum, aber ich weiß nicht, warum die vorgeschlagene Antwort funktioniert nicht in meinem Fall. So versuche ich zu Fragen, für andere slution.
Ich bin ein absoluter newby in c++, Qt-Programmierung.
Ich habe gerade meine Qt-crator laufen unter linux.
verstehe ich nicht, warum mein:
cout << "This does not appear";
nicht den Druck in der Konsole, während qdebug hat
qDebug() << "This appears";
dies ist, was ist enthalten in meiner .pro Datei:
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
Irgendeine Idee?
Cheers,
Stefano
cout << "This does not appear" << flush;
Vielleicht diese?- Nicht die Ausgabe angezeigt, wenn das Programm beendet ist? Wenn ja, wahrscheinlich ist es nur eine fehlende flush (fügen Sie eine std::endl)
- auf welcher Plattform sind Sie auf?
- ja... es geht... danke Jungs!
- Die Debug-Ausgabe wird direkt angezeigt. Die
<iostream>
äquivalentqDebug()
istcerr <<
, das nicht braucht, Spülung entweder.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen mit
cout << "asdf" << endl;
Möglicherweise Qt-sets bis iostream, um zu Spülen, nur bei new line.
endl
ein Zeilenumbruch ist plus flush-Befehl. Ähnlich"\n" << flush
Ist es möglich, dass STDOUT umleiten? qDebug Drucke auf STDERR standardmäßig.
Hast du
#include <iostream>
? Ich sehe keine im code.Ich gehe davon aus, dass
qdebug
undcout
sind sehr ähnlich.Beim Debuggen mit CDB (Windows debugger) und der Laufenden Anwendung nicht in den dedizierten terminal-Fenster, sondern innerhalb von QtCreator Bedienfeld "Ausgabe" es ist ein Problem mit
std::cout/std::cerr
.qDebug funktioniert, weil es einen trick für diesen Fall.
Also, die einzige Lösung ist in diesem Fall aktivieren Sie die "run in terminal" - option.
Weitere infor Folgen Sie bitte den obigen link, um die Qt-bug-tracker.