2010-02-23 42 views

Respuesta

1

Acabo de intentar el siguiente código con QtCreator y parece estar funcionando:

#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(); 

}

espero que ayude un poco!

+1

Creo que está hablando sobre el uso de cin con ciertos objetos qt, especialmente QString, no solo ints. –

7

Sí, es posible y funciona como se esperaba aunque puede hacer cosas, como el uso de subprocesos, que pueden causar problemas con este enfoque.

Sin embargo, yo recomendaría una manera más idiomática (Qt) para leer de la entrada estándar:

QString yourText; 
QFile file; 
file.open(stdin, QIODevice::ReadOnly); 
QTextStream qtin(&file); 
qtin >> yourText; 
+0

Gracias por un fragmento de código tan útil. – sivabudh

+0

Y puede hacer lo mismo con cout (qout). Uno de los beneficios más grandes es el soporte nativo para muchos tipos de Qt. –

20

I probado a cabo respuesta Kaleb Pederson 's, y ha encontrado una manera más conciso que la solución que presenta (aunque hay que darle las gracias por dirigirme a la dirección correcta):

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. 

En otras palabras, usted realmente no necesita QFile como su intermediario.

+1

Coolbeans. No me gustó la idea de usar "stdin" como un archivo falso. – mpen

Cuestiones relacionadas