是否可以在Qt中使用cin
?我可以使用cout
,但找不到如何在Qt控制台应用程序中使用cin
的示例。
答案 0 :(得分:21)
我测试了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作为你的中间人。
答案 1 :(得分:8)
是的,它可以并且按预期工作,尽管你可以做一些事情,比如使用线程,这可能会导致这种方法出现问题。
但是,我建议使用更加惯用(Qt)的方式从stdin中读取:
QString yourText;
QFile file;
file.open(stdin, QIODevice::ReadOnly);
QTextStream qtin(&file);
qtin >> yourText;
答案 2 :(得分:2)
我刚用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();
}
希望它有所帮助!
答案 3 :(得分:0)
我是 QT 6 的新手,我确实尝试像您一样制作简单的程序。 使用 C++ 读取名称和打印 Hello + 名称。起初我的程序没有工作,直到我将项目设置更改为在终端中运行。
然后我再次运行我的代码并且成功了。
我的代码:
#include <QCoreApplication>
#include <iostream>
#include <string>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
std::string name;
std::cout << "please enter your name : " ;
std::cin >> name;
std::cout << std::endl << "Hello " << name;
return a.exec();
}
在我更改设置之前,按 ENTER 后 qt 没有读取我的输入。