jjzjj

c++ - iostream.h 中用于 conio.h 的 getch() 的替代函数?

我正在尝试使用头文件在输出中保留屏幕,但我不知道getch()的任何等效功能&clrscr()的功能在或任何其他C++库。有这样的功能吗? 最佳答案 conio.h函数是该语言的编译器扩展,不是C或C++的一部分。标准C++中没有直接替代品。对于getch(),intch=std::cin.get();可能是最接近的等价物——但请记住,这将从缓冲的标准输入中读取,而我认为conio.hgetch进行无缓冲读取。clrscr()的任何实现都将非常依赖于平台——并非所有的屏幕或终端都有清除的概念,而且那些确实有完全不同的方法来访问该功能

c++ - iostream.h 中用于 conio.h 的 getch() 的替代函数?

我正在尝试使用头文件在输出中保留屏幕,但我不知道getch()的任何等效功能&clrscr()的功能在或任何其他C++库。有这样的功能吗? 最佳答案 conio.h函数是该语言的编译器扩展,不是C或C++的一部分。标准C++中没有直接替代品。对于getch(),intch=std::cin.get();可能是最接近的等价物——但请记住,这将从缓冲的标准输入中读取,而我认为conio.hgetch进行无缓冲读取。clrscr()的任何实现都将非常依赖于平台——并非所有的屏幕或终端都有清除的概念,而且那些确实有完全不同的方法来访问该功能

c++ - 为什么 getch() 需要按下一个键才能继续执行其余代码?

我有一个函数可以在按下某些键时执行其他功能。如果按下“s”,它会射击玩家。如果按下“h”,它只会伤害玩家。问题出在选择=获取();下面:void*command(void*data){choice=getch();//Thisiswheretheproblembegins...cout0){if(choice=='s'){playershot();}if(choice=='h'){playerharm();}}}执行时,出于某种原因,控制台会等待我按两次ENTER,然后它会输出 最佳答案 getch从您的输入缓冲区中读取一个字符。根

c++ - 当我键入一个时,getch 返回 2 个字符

当我使用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定义。

c++ - 诅咒库 : why does getch() clear my screen?

我正在尝试使用C++学习curses库(pdcurses,因为我在Windows操作系统中)。我有一个显示3个窗口的程序,然后是一个while循环来根据getch()捕获的按键进行一些处理。当按下F1键时,循环退出。然而,尽管使用wrefresh()刷新了所有三个窗口,但在我输入第一次按键之前没有任何显示。没有while循环,一切都显示正常。我做了很多测试,好像第一次调用getch()会完全清除屏幕,但后续的不会。我的问题是:我错过了什么?起初,我想也许getch()正在调用一个隐式的refresh(),但为什么后续调用它的行为不同?非常感谢您的帮助。这是代码。#includeintm

c - 如何使用kbhit和getch(C语言编程)

关闭。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。关闭7年前。Improvethisquestion我正在尝试创建一个函数printf一个特定的字符串,如果用户按下键盘上的任何按钮,大写字母除外P,如果用户按下P然后它将打破循环。但是我不认为我正在使用_kbhit和_getch适本地。我使用数字80是因为它是80的ASCII符号....抱歉造成任何混淆voidactivateAlarm(intch

linux - 非阻塞 getch()、ncurses

我在阻止ncurses的getch()时遇到了一些问题。默认操作似乎是非阻塞的(或者我错过了一些初始化)?我希望它像Windows中的getch()一样工作。我试过各种版本timeout(3000000);nocbreak();cbreak();noraw();etc...(并非同时)。如果可能的话,我宁愿不(明确地)使用任何WINDOW。围绕getch()的while循环,也可以检查特定的返回值。 最佳答案 curses库是一揽子交易。如果没有正确初始化库,您不能只提取一个例程并希望获得最好的结果。以下是正确阻止getch()的代

C++按键: getch, cin.get?

我有一个循环运行的Win32程序。我希望能够在等待按键时暂停该程序。无论我使用“任意键”还是特定键都没有关系,但我需要让程序卡住,直到我按下某个键。我想知道我应该使用哪个命令。我正在使用VisualC++,编译器无法识别以下任何命令:cin.get()std::cin.get()getch()我对C++比较陌生。我知道在控制台应用程序中这是一个相当简单的操作(cin.get),但在Win32中可能会更加困难。任何简单的解决方案或解决方法将不胜感激。该程序是为单个科学实验定制的,所以现在我不会担心解决方案有点拙劣(!)如果我错过了问题中的任何重要信息,我们深表歉意。

c - Linux 中的 getch() 和 getche() 等价于什么?

我在Linux中找不到conio.h的等效头文件。getche()&getche()在Linux中有没有选项?我想制作一个switchcase基本菜单,用户只需按一个键就可以给出他的选项,并且进程应该向前移动。我不想让用户在按下他的选择后按下ENTER。 最佳答案 #include#includestaticstructtermiosold,current;/*Initializenewterminali/osettings*/voidinitTermios(intecho){tcgetattr(0,&old);/*graboldt

c - Linux 中的 getch() 和 getche() 等价于什么?

我在Linux中找不到conio.h的等效头文件。getche()&getche()在Linux中有没有选项?我想制作一个switchcase基本菜单,用户只需按一个键就可以给出他的选项,并且进程应该向前移动。我不想让用户在按下他的选择后按下ENTER。 最佳答案 #include#includestaticstructtermiosold,current;/*Initializenewterminali/osettings*/voidinitTermios(intecho){tcgetattr(0,&old);/*graboldt