c++ 用GetKeyState函数,之后用cin,结果刚进入cin语句还没输入,屏幕上就显示了刚才键盘上按下的所有键

#include<iostream>#include<windows.h>usingnamespacestd;intmain(){strings;while(GetKey... #include <iostream>
#include <windows.h>
using namespace std;

int main()
{
string s;
while(GetKeyState('1')>=0); //语句1
while(GetKeyState('1')<0); //语句2
cin>>s; //语句3
cout<<s; //语句4
system("pause");
}

第一步:启动程序后,按abc,此时屏幕上什么也没有,因为此时一直在语句1中;
第二步:然后按1不放,此时在语句2;
第三步:放开1,这时刚开始执行语句3,此时屏幕上出现abc1。
第四步:然后按234,回车,输出abc1234。(执行语句4)

如何做到刚放开1(第三步)的时候,屏幕上什么也没有,然后按234(第四步),回车,输出234呢?
展开
 我来答
庄政警
2019-07-21 · TA获得超过9916个赞
知道大有可为答主
回答量:1113
采纳率:94%
帮助的人:888万
展开全部
你的代码不能阻止屏幕回显,可以用不缓冲且无回显的getch()实现你的要求
int main()
{
string s;
char c = 0;
while (1)
{
c = getch(); //使用getch要#include<conio.h>
if (c == '1')
break;
}
cin >> s; //语句3
cout << s; //语句4
system("pause");
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式