qq_sxaqsqw 2021-06-09 21:27 采纳率: 100%
浏览 23
已结题

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

编译器: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;
	}
}
  • 写回答

3条回答 默认 最新

  • 有问必答小助手 2021-06-10 16:11
    关注

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

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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月28日
  • 已采纳回答 9月20日

悬赏问题

  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?