//clear
SetConsoleCursorPosition(hOut,curser_position);
stringout_put_string="";
write(out_put_string.c_str());
SetConsoleCursorPosition(hOut,curser_position);
write(store_compare_[i]);
break;
}
}
deletepri_temp_input;
pri_temp_input=NULL;
i_store_input_count-=1;
return;
}
char*get_attach(constchar*stacks_,constchar*needle_)
{
char*pri_string_stack=(char*)stacks_;
char*pri_string_needle=(char*)needle_;
char*pri_string=strstr(pri_string_stack,pri_string_needle);
returnpri_string;
}
/*---------------------------------------------------------*/
voidconsole_start()
{
AllocConsole();
DWORDdwConsoleMode;
GetConsoleMode(NULL,&dwConsoleMode);
dwConsoleMode^=ENABLE_LINE_INPUT;
dwConsoleMode^=ENABLE_ECHO_INPUT;
//wConsoleMode^=ENABLE_AUTO_POSITION;
SetConsoleMode(NULL,dwConsoleMode);
constchar*message="welcome!teststarted.atuhorbyzhangpengju ";
write(message);
}
voidconsole_end()
{
FreeConsole();
}
voidwrite(constchar*message,intlength)
{
if(length<=0)
{return;
}
WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE),message,length,NULL,NULL);
}
voidwrite(constchar*message)
{
intlength=strlen(message);
WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE),message,length,NULL,NULL);
}
voidread(char*buffer,size_tsize)
{
DWORDnNumberOfCharsToRead;
BOOLresult=ReadConsoleA(GetStdHandle(STD_INPUT_HANDLE),buffer,size,&nNumberOfCharsToRead,NULL);
buffer[nNumberOfCharsToRead-2]=0;
}
  2.在vs2012下测试结果是可以的。不给贴图了。
  运行程序,测试输入,t,然后切换tab键可以看见有自动补齐的功能。
  输入_,有不同的单词供你选择,然后回车,可换其他测试。
  不足之处,请多指教。
  全部源码都在这里了。也不给资源链接啥的。