Можно ли использовать cin с Qt? - PullRequest
10 голосов
/ 24 февраля 2010

Можно ли использовать cin в Qt? Я могу использовать cout, но не могу найти примеры того, как использовать cin в консольном приложении Qt.

Ответы [ 3 ]

21 голосов
/ 11 июня 2010

Я проверил Kaleb Pederson ответ и нашел более разумный способ, чем решение, которое он представил (хотя я должен поблагодарить его за то, что он указал мне правильное направление):

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.

Другими словами, вам не нужен QFile в качестве посредника.

8 голосов
/ 24 февраля 2010

Да, это возможно и работает, как и ожидалось, хотя вы можете делать такие вещи, как использование потоков, которые могут вызвать проблемы с этим подходом.

Однако я бы порекомендовал более идиоматический (Qt) способ чтения со стандартного ввода:

QString yourText;
QFile file;
file.open(stdin, QIODevice::ReadOnly);
QTextStream qtin(&file);
qtin >> yourText;
2 голосов
/ 24 февраля 2010

Я только что попробовал следующий код с QtCreator, и он, кажется, работает:

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

}

Надеюсь, это немного поможет!

...