我知道getch不是标准的C/C++函数,但我倾向于喜欢它,因为它不需要您在返回前按回车键。所以我想知道标准C++中是否有具有相同效果的等效项(不需要您按回车键)?我在这个网站上读过类似的问题,但他们的回答都没有说明是否有标准的和可移植的等价物。 最佳答案 如果您使用“curses”库之一,例如ncurses,则有一个可移植的等价物。 关于c++-C++中是否有标准的getch()等价物?,我们在StackOverflow上找到一个类似的问题: https:/
[导读]本系列博文内容链接如下:【C++】做一个飞机空战小游戏(一)——使用getch()函数获得键盘码值【C++】做一个飞机空战小游戏(二)——利用getch()函数实现键盘控制单个字符移动【C++】做一个飞机空战小游戏(三)——getch()函数控制任意造型飞机图标移动【C++】做一个飞机空战小游戏(四)——给游戏添加背景音乐(多线程技巧应用)【C++】做一个飞机空战小游戏(五)——getch()控制两个飞机图标移动(控制光标位置)【C++】做一个飞机空战小游戏(六)——给两架飞机设置不同颜色(cout输出彩色字符、结构体使用技巧)【C++】做一个飞机空战小游戏(七)——两组按键同时检测
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:C/C++:Capturecharactersfromstandardinputwithoutwaitingforentertobepressed我在Windows7上使用C-Free4Standard并编写C程序。我正在使用getch()作为暂停程序的函数,但是,按下的字符在屏幕上回显,它等待按下Enter键,然后再继续(它看起来没有任何与scanf的工作方式不同)。我尝试了getche(),它工作正常,尽管出现了回声。getch()函数可能有什么问题?
[导读]本系列博文内容链接如下:【C++】做一个飞机空战小游戏(一)——使用getch()函数获得键盘码值【C++】做一个飞机空战小游戏(二)——利用getch()函数实现键盘控制单个字符移动【C++】做一个飞机空战小游戏(三)——getch()函数控制任意造型飞机图标移动【C++】做一个飞机空战小游戏(四)——给游戏添加背景音乐(多线程技巧应用)【C++】做一个飞机空战小游戏(五)——getch()控制两个飞机图标移动(控制光标位置)【C++】做一个飞机空战小游戏(六)——给两架飞机设置不同颜色(cout输出彩色字符、结构体使用技巧)【C++】做一个飞机空战小游戏(七)——两组按键同时检测
在Windows上,我有以下代码可以在不中断循环的情况下查找输入:#include#include#includeintmain(){while(true){if(_kbhit()){if(_getch()=='g'){std::cout但是,看到没有conio.h,在Linux上实现同样的事情的最简单方法是什么? 最佳答案 如果你的linux没有支持kbhit()的conio.h你可以看看hereforMorganMattews'scode以与任何POSIX兼容系统兼容的方式提供kbhit()功能。作为在termios级别停用缓冲
在Windows上,我有以下代码可以在不中断循环的情况下查找输入:#include#include#includeintmain(){while(true){if(_kbhit()){if(_getch()=='g'){std::cout但是,看到没有conio.h,在Linux上实现同样的事情的最简单方法是什么? 最佳答案 如果你的linux没有支持kbhit()的conio.h你可以看看hereforMorganMattews'scode以与任何POSIX兼容系统兼容的方式提供kbhit()功能。作为在termios级别停用缓冲
我正在尝试使用头文件在输出中保留屏幕,但我不知道getch()的任何等效功能&clrscr()的功能在或任何其他C++库。有这样的功能吗? 最佳答案 conio.h函数是该语言的编译器扩展,不是C或C++的一部分。标准C++中没有直接替代品。对于getch(),intch=std::cin.get();可能是最接近的等价物——但请记住,这将从缓冲的标准输入中读取,而我认为conio.hgetch进行无缓冲读取。clrscr()的任何实现都将非常依赖于平台——并非所有的屏幕或终端都有清除的概念,而且那些确实有完全不同的方法来访问该功能
我正在尝试使用头文件在输出中保留屏幕,但我不知道getch()的任何等效功能&clrscr()的功能在或任何其他C++库。有这样的功能吗? 最佳答案 conio.h函数是该语言的编译器扩展,不是C或C++的一部分。标准C++中没有直接替代品。对于getch(),intch=std::cin.get();可能是最接近的等价物——但请记住,这将从缓冲的标准输入中读取,而我认为conio.hgetch进行无缓冲读取。clrscr()的任何实现都将非常依赖于平台——并非所有的屏幕或终端都有清除的概念,而且那些确实有完全不同的方法来访问该功能
我有一个函数可以在按下某些键时执行其他功能。如果按下“s”,它会射击玩家。如果按下“h”,它只会伤害玩家。问题出在选择=获取();下面:void*command(void*data){choice=getch();//Thisiswheretheproblembegins...cout0){if(choice=='s'){playershot();}if(choice=='h'){playerharm();}}}执行时,出于某种原因,控制台会等待我按两次ENTER,然后它会输出 最佳答案 getch从您的输入缓冲区中读取一个字符。根
当我使用getch时,它总是在读取的字符后附加一个空字符。当我使用下面的代码时:#include"stdafx.h"#includeintmain(){charc=0;while(c!='x'){c=_getch();printf("Charread:\n",c);}}当我按下“asdx”键时,它在控制台上返回以下内容:Charread:Charread:Charread:Charread:Charread:Charread:Charread:这是在VS2017中编译的一个普通的新单文件项目,在Windows10控制台窗口上运行。我尝试删除_UNICODE和UNICODE定义。