软件测试tab键是必须实现的吗,C++ Tab键实现自动补全输入功能

#include

#include

#include

#include

usingnamespacestd;

#include

#include

#include

//tab键获取相关值,并打印到屏幕上。

voidtab_find_char(std::mapstore_compare_,char*store_input,inti_store_input_count,int&tab_count);

//从字符中找到相关字符,并返回相关字符。

char*get_attach(constchar*stacks_,constchar*needle_);

voidconsole_start();

voidconsole_end();

voidwrite(constchar*message,intlength);

voidwrite(constchar*message);

voidread(char*buffer,size_tsize);

#include

#include"conio.h"

//记录屏幕光标位置

staticCOORDcurser_position;

voidmain()

{

console_start();

//自定义的可搜索库字符集

staticstd::mapstore_compare;

store_compare[0]="thread_parameter_";

store_compare[1]="parameter_";

store_compare[2]="build";

store_compare[3]="compile";

intcount=0;

charch;

while(true)

{

inttab_count=0;

charstore_input[256];

inti_store_input_count=0;

//记录光标位置

HANDLEhOut;

CONSOLE_SCREEN_BUFFER_INFObInfo;

hOut=GetStdHandle(STD_OUTPUT_HANDLE);

GetConsoleScreenBufferInfo(hOut,&bInfo);

curser_position.X=bInfo.dwCursorPosition.X;

curser_position.Y=bInfo.dwCursorPosition.Y;

do

{

ch=(char)_getch();

if(ch!='\n')

{

if(ch=='q')

{

break;

}

elseif(ch==9)

{

tab_find_char(store_compare,store_input,i_store_input_count,tab_count);

tab_count++;

}

//接受数字和全部字母和部分特殊符号。

elseif((ch>=48&&ch<=57)||(ch>=65&&ch<=122))

{

char*temp_char=newchar[1];

temp_char[0]=ch;

write(temp_char,1);

store_input[i_store_input_count]=ch;

i_store_input_count++;

}

}

}

while(ch!='\r');

write("\n");

}

console_end();

}

voidtab_find_char(std::mapstore_compare_,char*store_input,inti_store_input_count,int&tab_count)

{

if(i_store_input_count<0||tab_count<0)

{

return;

}

intmap_size=store_compare_.size();

tab_count=tab_count%map_size;

i_store_input_count+=1;

store_input[i_store_input_count-1]='\0';

char*pri_temp_input=newchar[i_store_input_count];

strncpy(pri_temp_input,store_input,i_store_input_count);

inti_catch_times=0;

HANDLEhOut;

hOut=GetStdHandle(STD_OUTPUT_HANDLE);

for(inti=0;i

{

char*pri_get_supply=get_attach(store_compare_[i],pri_temp_input);

if(NULL!=pri_get_supply)

{

if(tab_count>i_catch_times)

{

i_catch_times++;

continue;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值