为什么我的C++/Qt程序没有做任何事情?

Why isn't my C++/Qt program doing anything?

本文关键字:任何事 程序 我的 C++ Qt 为什么      更新时间:2023-10-16

我在Qt Creator中编写了这个程序,但我不知道如何运行它

#include <QtCore/QCoreApplication>
using namespace std;
#include <iostream>
int main(int argc, char *argv[])
{ 
   QCoreApplication a(argc, argv);
   string str;
   cin >> str;
   cout << " str is : " << str;
   return a.exec();
}

当我运行它时,我的控制台显示如下:

Starting /home/hamed/qt programs/test3-build-desktop/test3...

什么也没发生。我该怎么办?

当复制粘贴代码时,它会按预期为我运行(好吧,它没有终止,而是运行)。以下是我在命令行中所做的:

cd testproject
qmake -project
qmake
make
./testproject

正如上面的评论中所提到的,Qt本身就是一个库,所以当你说从"在Qt内"运行它时,你可能指的是某个IDE——那里的行为完全取决于你使用的IDE。

更新:

从您的信息

Starting /home/hamed/qt programs/test3-build-desktop/test3...

我假设您使用的是QtCreator IDE,它不允许您在运行时向控制台输入内容。我不知道您是否可以让它这样做,但如果您在控制台中输入项目目录并使用./projectname,它就会起作用。上述建筑部分将由QtCreator负责处理。

另一个更新:

查看此线程,了解如何直接从QtCreator使其工作的信息。

什么都没发生!!

正如您在这里所写的,您的程序正在等待输入:

cin >> str;

我该怎么办?

只需键入一些内容,然后按输入

在行return a.exec();之前添加QTimer::singleShot(0, &a, SLOT(quit()));,不要忘记#include <QtCore/QTimer>(或者你可以让生活更轻松,导入所有#include <QtCore>)。

CCD_ 6进入等待事件的事件循环;通常以具有图形用户界面的用户输入的形式。然而,这是一个命令行程序,用户实际上没有办法发送事件,所以它会一直等待。这对服务器类型的应用程序很有用,但对您在这里所做的不有用。:)

(注意,这是您的应用程序可能看起来什么都不做的许多原因之一。在您的程序执行您所期望的操作之前,您可能需要遵循其中的几个答案)