如何使用getch()读取时擦除读取的字符

时间:2018-12-27 13:54:29

标签: c

我正在尝试使用getch()循环读取字符串。当我按退格键时,它将退格键作为字符读取。因此,当我按退格键时,我需要擦除读取的字符。我需要从屏幕上删除。

while((c=getch())!=13)
{
    if(c==8)
    {
        i=i-1;
    }
    else
    {
        printf("*");
        str[i]=c;
        i++;
    }
}
str[i]='\0';

1 个答案:

答案 0 :(得分:0)

我想你想读密码

char str[100];
int c;
int i=0;

while((c=getch())!='\r')
{
  if(c!='\b')
  {
    printf("*"); // putchar not ok with MSVC ?
    str[i++]=c;
  }
  else if (i != 0) {
    printf("\b"); // or putchar
    i -= 1;
  }
}
str[i]='\0';
printf("str=%s\n", str);

该代码无法检查密码,长度不超过99个字符...