Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Problem mit stdout und QT

  1. #1
    Neverendingo
    Gast

    Problem mit stdout und QT

    Hallo!

    Versuche gerade mich ein bisschen näher mit C++ und Qt zu beschäftigen. Dabei interessieren mich momentan eher die Kommandozeilenfähigkeiten von QT. Und natürlich Stringmanipulation.
    Dazu hab ich mir die "Verschlüsselungs"-Routine aus KMail für das Passwort rausgenommen und möchte gerne daraus ein Kommandozeilentool machen. Also wird der String übergeben und der verschlüsselte String rauskommen. Aber irgendwie scheint nicht zu gehen, es kommen nur Fragezeichen raus, und ich komm da einfach nicht weiter.
    Gut, über den Sinn mag man streiten, aber das interessiert mich einfach...
    Hier der Code:
    Code:
    #include <stdio.h>
    #include <iostream>
    #include <stdlib.h>
    #include <qstring.h>
    #include <string>
    
    
    
    QString encryptStr(const QString &aStr)
    {
        QString result;
        for (uint i = 0; i < aStr.length(); i++)
        result += (aStr[i].unicode() < 0x20) ? aStr[i] :
                    QChar(0x1001F - aStr[i].unicode());
        return result;
    }
    
    
    int main(int argc, char *argv[])
    {
        std::string stdStr(argv[1]);
        const QString aStr(stdStr);
        QString result(encryptStr(aStr));
        
        std::cout << result << std::endl;
    
      return EXIT_SUCCESS;
    }
    Ich bin beileibe kein Profi und noch am Experimentieren, deswegen wäre ich sehr froh, wenn mir da jemand helfen könnte.

    Vielen Dank schonmal

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Das ist vermutlich einer Frage des Encodings.
    Wenn du einen QString direkt(implizit) in einen C/C++ Basistyp verwandelst, dann ruft das vermutlich eine Konvertierung nach ascii() oder latin1() hervor.
    Dein String dürfte aber schon Zeichen enthalten, die es dort nicht mehr gibt.

    Probier mal

    Code:
    cout << result.utf8() << endl;
    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #3
    Neverendingo
    Gast

    Danke danke danke

    Ich fasse es nicht, ich danke dir, ich such schon seit Tagen nach ner Möglichkeit...
    Hat geklappt. Vielen vielen Dank!!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •