Ist es möglich, cin
in Qt zu verwenden? Ich kann cout
verwenden, kann aber keine Beispiele finden, wie man cin
in einer Qt-Konsolenanwendung verwendet.Ist es möglich, cin mit Qt zu verwenden?
Antwort
Ich habe gerade versucht, den folgenden Code mit QtCreator und es scheint zu funktionieren:
#include <QtCore/QCoreApplication>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
cout << endl << "hello" << endl;
int nb;
cout << "Enter a number " << endl;
cin>>nb;
cout << "Your number is "<< nb<< endl;
return a.exec();
}
Hoffe, es hilft ein wenig!
Ja, es ist möglich und funktioniert wie erwartet, obwohl Sie Dinge tun können, wie Threads, die Probleme mit diesem Ansatz verursachen können.
Allerdings würde ich einen idiomatischen (Qt) Weg von stdin zu lesen empfehlen:
QString yourText;
QFile file;
file.open(stdin, QIODevice::ReadOnly);
QTextStream qtin(&file);
qtin >> yourText;
Vielen Dank für solch ein nützliches Code-Schnipsel. – sivabudh
Und Sie können mit cout (qout) ähnlich machen. Einer der größeren Vorteile ist die native Unterstützung für viele Qt-Typen. –
Ich testete Kaleb Pederson ‚s Antwort und fand eine consise Art und Weise als die Lösung, die er (obwohl ich vorgestellt haben ihn mir für den Hinweis auf die richtige Richtung) danken:
QTextStream qtin(stdin);
QString line = qtin.readLine(); // This is how you read the entire line
QString word;
qtin >> word; // This is how you read a word (separated by space) at a time.
Mit anderen Worten: Sie brauchen nicht wirklich QFile als Zwischenhändler.
Coolbeans. Ich mochte die Idee nicht, "stdin" als gefälschte Datei zu verwenden. – mpen
Ich denke, er spricht über die Verwendung von Cin mit bestimmten Qt-Objekte vor allem QString nicht nur Intarsien. –