Kommandozeilen ausgabe?

Alles rund um die Programmierung mit Qt
Antworten
dam1
Beiträge: 14
Registriert: 17. Juni 2007 21:49

Kommandozeilen ausgabe?

Beitrag von dam1 »

Hallo,

hier mal eine Anfängerfrage:
Wie gebe ich am besten einen QString (z.b) in der CL aus? Mit IO Streams etwa wie sonst bei cpp oder hat qt bzw. sogar etwa das qstring Objekt selbst da elegantere möglichkeiten?

Für ein Beispiel wär ich dankbar!

Danke,
Gruss Dani
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Am einfachsten mit

Code: Alles auswählen

qDebug() << test;
dam1
Beiträge: 14
Registriert: 17. Juni 2007 21:49

Beitrag von dam1 »

hmm,

danke erstmal. dachte aber eher an eine nicht-debug-ausgabe eines kommandozeilentools.. ideen?
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Warum nicht printf? Oder war das jetzt zu simpel :-)
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
Burgpflanze
Beiträge: 89
Registriert: 24. Februar 2006 16:41
Wohnort: Dresden

Beitrag von Burgpflanze »

Oder so:

Code: Alles auswählen

#include <iostream>

...
std::cout << <IRGENDWAS> << std::endl;
...
Gruß, Peter
dam1
Beiträge: 14
Registriert: 17. Juni 2007 21:49

Beitrag von dam1 »

danke für eure tipps.

burgpflanze: nen QString kann ich nicht (bzw. weiss nicht wie) in den ausgabestream inserten.

macman: kann ich nen QString mit printf ausgeben? Beispiel waere nett.

das mit qDebug() geht gut nur gefällt mir das nicht so ganz da es ja offensichtlich ne debugging funktion ist und somit nicht umbedingt geeignet fuer produktiven einsatz. gibt es denn da nicht was anderes (qt spezifisches)?
bst
Beiträge: 56
Registriert: 7. November 2006 13:16
Wohnort: Ilsfeld

Beitrag von bst »

Hi,

wandle den QString z.B. in ASCII.

cu, Bernd
--

Code: Alles auswählen

QString qs("Hallo");
printf("%s\n", qs.toAscii().constData());
std::cout << qs.toAscii().constData() << std::endl;
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Code: Alles auswählen

QString qs("Hallo");
printf(qs.toAscii());
Gefällt mir besser. Irgendwelche Formatierungen habe ich bereits vorher gemacht.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
bst
Beiträge: 56
Registriert: 7. November 2006 13:16
Wohnort: Ilsfeld

Beitrag von bst »

QString qs("Hallo");
printf(qs.toAscii());

Gefällt mir besser. Irgendwelche Formatierungen habe ich bereits vorher gemacht.
Es ist IMHO keine besonders gute Idee printf(anystring) zu benutzen. In anystring könnte eine Formatierungsanweisung enthalten sein.

cu, Bernd
--

Code: Alles auswählen

QString qs("Aber Hallo %s\n %d %p Ende");
printf( qs.toAscii() );
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

macman hat geschrieben:

Code: Alles auswählen

QString qs("Hallo");
printf(qs.toAscii());
Gefällt mir besser.
Na dann viel Spass beim Crash wenn Du aus versehen irgendwo ein '%' in qs hast ...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Christian81 hat geschrieben:Na dann viel Spass beim Crash wenn Du aus versehen irgendwo ein '%' in qs hast ...
Hmm, stimmt. Ist mir bisher noch nicht untergekommen. Ich versuche es mir zu merken :-)
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
dam1
Beiträge: 14
Registriert: 17. Juni 2007 21:49

Beitrag von dam1 »

Super, danke euch.. Bin getern beim lesen der QString api docs selbst auf die Idee gekommen ne Transformation zu ascii vorzunehmen und dann ging alles.
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag von patrik08 »

qPrintable ist auch elegant....

Code: Alles auswählen

bool SqlConnect(  QString connecter  )
{
     QUrl dns(connecter);
     QString dbase = dns.path().replace("/","");
    std::cout << "scheme->[" << qPrintable(dns.scheme()) << "]" << std::endl;
    std::cout << "dbase->[" << qPrintable(dbase) << "]" << std::endl;
    std::cout << "user->[" << qPrintable(dns.userName()) << "]" << std::endl;
    std::cout << "pass->*********]" << std::endl;
    std::cout << "host->[" << qPrintable(dns.host()) << "]" << std::endl;
    std::cout << "port->[" << dns.port() << "]" << std::endl;
    
    QStringList drivers = QSqlDatabase::drivers();
    if (!drivers.contains("QMYSQL")) {
       std::cout << "### Load QMYSQL  Driver Fail!." << std::endl; 
       return false;      
    }
...............

.........................
speack português italiano deutsch english castellà qt
Antworten