Действительно ли возможно использовать cin
в QT? Я могу использовать cout
но не может найти примеры того, как использовать cin
в рамках спокойного консольного приложения.
Да, это возможно и работает как ожидалось, хотя вы можете делать вещи, например, использовать потоки, которые могут вызвать проблемы с этим подходом.
Однако я бы рекомендовал более идиоматичный (для Qt) способ чтения из stdin:
QString yourText;
QFile file;
file.open(stdin, QIODevice::ReadOnly);
QTextStream qtin(&file);
qtin >> yourText;
Я только что попробовал следующий код с 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();
}
Надеюсь, это немного поможет!
Я проверил ответ Калеба Педерсона и нашел более продуманный способ, чем решение, которое он представил (хотя я должен поблагодарить его за то, что он указал мне правильное направление):
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 в качестве посредника.