在QtCreator中编写c++程序,其中需要从控制台输入,就用了c++的cout和cin,本应该等待控制台输入文本,但是却没有。下面是具体的案例。
本文基于QtCreator创建的qt控制台输出程序,创建时选择如下图所示的选项,创建控制台输出应用程序。
其中main.cpp文件中的代码如下,其它采用创建项目时自动生成的代码,未做修改。
main.cpp
#include <QCoreApplication>
#include <iostream>
#include <QDebug>
int main(int argc, char *argv[])
QCoreApplication a(argc, argv);
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.cin和cout简介
cin是C++编程语言中的标准输入流对象,即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:
setScaledContents的看法
rainyin-:
移动场景在其缩略图中显示场景中所显示的区域
肩上风骋: