Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it possible to use cin with Qt?

Tags:

c++

iostream

qt

cin

Is it possible to use cin in Qt? I can use cout but cannot find examples of how to use cin within a Qt console application.

like image 646
grant Avatar asked Feb 23 '10 21:02

grant


3 Answers

I tested out Kaleb Pederson's answer, and found a more consise way than the solution he presented (though I have to thank him for pointing me to the right direction):

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.

In other words, you don't really need QFile as your middleman.

like image 51
sivabudh Avatar answered Sep 22 '22 15:09

sivabudh


Yes, it's possible and works as expected although you can do things, like use threads, that may cause problems with this approach.

However, I would recommend a more idiomatic (Qt) way to read from stdin:

QString yourText;
QFile file;
file.open(stdin, QIODevice::ReadOnly);
QTextStream qtin(&file);
qtin >> yourText;
like image 33
Kaleb Pederson Avatar answered Sep 23 '22 15:09

Kaleb Pederson


I just tried the following code with QtCreator and it seems to be working :

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

}

Hope it helps a bit !

like image 33
Andy M Avatar answered Sep 22 '22 15:09

Andy M