求个条件循环命令
例子:当我按住鼠标的中键不松时,循环输入键盘ABCABCABC,弹起鼠标中键时,结束ABC的循环
循环 输入 键盘 ABCABCABC
听不懂,应该是“输出”吧,“键盘”不知道是什么意思C语言中没有“鼠标”这个概念,因此纯C函数是做不到的,必须使用相应平台提供的功能。
给你一个 Windows 上的示例吧
程序代码:#include <cstdio>
#include <windows.h>
int main( void )
{
HANDLE hInput = GetStdHandle( STD_INPUT_HANDLE );
// 允许控制台输入鼠标信息
DWORD mode_save;
GetConsoleMode( hInput, &mode_save );
DWORD mode_new = (mode_save & ~ENABLE_QUICK_EDIT_MODE) | ENABLE_MOUSE_INPUT;
SetConsoleMode( hInput, mode_new );
// 检测 鼠标中键 是否按下
DWORD n;
for( INPUT_RECORD record; ReadConsoleInput(hInput,&record,1,&n) && n==1; )
{
if( record.EventType==MOUSE_EVENT && record.Event.MouseEvent.dwEventFlags==0 && (record.Event.MouseEvent.dwButtonState&FROM_LEFT_2ND_BUTTON_PRESSED)!=0 )
break;
}
// 检测 鼠标中键 是否释放
size_t loop=0;
for( INPUT_RECORD record; PeekConsoleInput(hInput,&record,1,&n); )
{
putchar( "ABC"[loop++%3] );
if( n==1 && record.EventType==MOUSE_EVENT && record.Event.MouseEvent.dwEventFlags==0 && (record.Event.MouseEvent.dwButtonState&FROM_LEFT_2ND_BUTTON_PRESSED)==0 )
break;
}
// 恢复控制台原先的设置
SetConsoleMode( hInput, mode_save );
}







