在QtCreator中编写c++程序,其中需要从控制台输入,就用了c++的cout和cin,本应该等待控制台输入文本,但是却没有。下面是具体的案例。

本文基于QtCreator创建的qt控制台输出程序,创建时选择如下图所示的选项,创建控制台输出应用程序。
在这里插入图片描述
其中main.cpp文件中的代码如下,其它采用创建项目时自动生成的代码,未做修改。
main.cpp

#include <QCoreApplication>
#include <iostream>
#include <QDebug>
//using namespace std;
int main(int argc, char *argv[])
    QCoreApplication a(argc, argv);
    //qt下c++的标准输输出无法等待输入——解决方法:项目的运行环境中设置运行在终端
    char name[50];
    std::cout << "请输入您的名称: ";
    std::cin >> name;
    std::cout << "您的名称是: " << name << std::endl;
    int num1, num2;
    std::cout<<"请输入两个数:"<<std::endl;
    std::cin>>num1>>num2;
    std::cout<<"num1="<<num1<<"num2="<<num2<<std::endl;
    return a.exec();

上述代码要想在控制台输入文本,需要在项目的运行环境中设置在终端运行。即下图所示:
在这里插入图片描述
勾选运行在终端,程序运行的时候会自动启动终端,按照cout中的文本提示信息,输入文本便可。

在上述问题的解决过程中也有说是c++标准输入输出与qt的QTextStream相冲突的,需要将c++标准输入输出的命名空间std声明注释掉,起初按照注释掉std声明并没有解决,而是设置运行环境在终端运行可以解决c++标准输入无法在qt中从键盘输入的问题。
上面代码经过测试,引入std名字空间和不引入std名字空间在运行环境设置为run in terminal之后都可以从键盘输入文本。

代码编译运行环境 QT creator 1.cincout简介 cinC++编程语言中的标准输入流对象,即istream类的对象。cin主要用于从标准输入读取数据,这里的标准输入,指的是终端的键盘。此外,cout是流的对象,即ostream类的对象,cerr是标准错误输出流的对象,也是ostream 类的对象。这里的标准输出指的是终端键盘,标准错误输出指的是终端的屏幕。 在理解cin...
#include<windows.h> #define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0) using namespace std;
比如有一个关于问答游戏的程序,程序只有在输入当前问题的答案才会继续提问下一个问题,而输入答案是由玩家来操纵的,程序要时刻监测输入情况。 这种问题在控制台很容易解决,在Qt GUI应用程序则要用到线程来解决, [code="C++"] #include //......代码省略 while(!isSend)//isSend是输入答案的确认变量 QCo...
这里写自定义目录标题使用Qt Creator创建C++项目使用Qt Creator创建C++项目 使用Qt Creator创建C++项目 使用Qt Creator创建C++项目 虽然Qt Creator是主要是用来编写使用Qt库的程序的,但是它也可以用作一个编写普通C++代码项目的IDE,并且功能也比较齐全,可以作为新手学习C++的一个良好的工具,首先我们来创建一个C++项目 打开Qt Creator,选择[File]->[New project...],出现下面的界面 选择[Non-Qt Proj
cin不能输入说明cin这个对象的状态出现问题了。 cin这个对象里边有个缓冲区结构(也就是流,流的意思可以想象成一个管子,数据从一头持续输入,从另一头持续流出,像水流一样),专门获取键盘输入。然后cout可以从这个缓冲区里边获取存在的数据.当然使用getline()方法和getch()方法也可以。 cin这个对象还有状态位标志,一共有四个,包括正常和错误(错误类型有三个)。 简单点理解就相似于平时你创建person对象,里边有一个数组数据(相当于cin对象的流),还有一个枚举结构,这个枚举结构有四个标志(
4、getline() 5、gets() 6、getchar()附:cin.ignore();cin.get()//跳过一个字符,例如不想要的回车,空格等字符1、cin>> 用法1:最基本,也是最常用的用法,输入一个数字:#include <iostream> using namespace s QT中DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x80040216 ()问题的解决 cefler: 感谢老哥,太坑了这个,访问图片资源都不用特地加上qrc setScaledContents的看法 rainyin-: 给label设置fixwidth和fixheight就行了,label固定高宽,图片也会和label的高宽保持一致 移动场景在其缩略图中显示场景中所显示的区域 肩上风骋: 时间太久了,工程已经找不到了。 这个文章不是已经附上了实现代码,和编译环境,你照着这个做一下。