运行程序时控制台自动粘贴粘贴版内容,使得程序无法获取正确输入

编译器:DEV C++15.5

代码描述:实时监测鼠标位置,假如鼠标右键,跳出循环

问题描述:跳出循环后控制台立即粘贴粘贴板内容,在存在输入函数的情况下,输入函数会读取粘贴的内容

#include<stdio.h>
#include<windows.h>
#include<stdbool.h>
#define lengths 100
#define wides 25

typedef struct p{
	int x;
	int y;
	bool argu;
}POS;
void Mouse(POS *pos);
int main(void)
{
	SetConsoleTitle("媒体库管理系统");
	POS *pos=(POS*)malloc(sizeof(POS));
	char ch[1000];
	while(true)
	{
		Mouse(pos);
		if(pos->argu)
			break;
	}
	COORD po={2,2};
	SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),po);
		printf("输入:");
	gets(ch);
	puts(ch);
}
void Mouse(POS *pos)
{
	pos->argu =false;
	POINT *mouse=(POINT*)malloc(sizeof(POINT)+64);
	GetCursorPos(mouse);
	
	LPRECT 	console=(LPRECT)malloc(sizeof(LPRECT)+64);
	HWND hwnd=FindWindow(NULL,"媒体库管理系统");
	GetWindowRect(hwnd,console);
	/*测试位置*/
	int x=mouse->x -console->left;
	int y=mouse->y -console->top;
	COORD p={0,wides+2};
	SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p);
		printf("鼠标相对控制台:%d %d   \n",x,y);
		printf("鼠标位置在控制台以实用数值(一个字符占八个单位长度)表示(近似):%d %d  ",x/8,y/8);//更精确的在指定位置输出
	/*结束*/
	if(GetAsyncKeyState(VK_RBUTTON))
	{
		pos->x=mouse->x -console->left;
		pos->y=mouse->y -console->top;
		pos->argu =true;
	}
}

 

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答

本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。

​​​​因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。

原因:鼠标右击系统默认为粘贴,在有输入函数的情况下,作为输入,那么如何用C语言关闭这个默认功能呢?

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632