2

我正在为“密码提示”编写 C 代码。我需要为用户输入的每个字符显示 * 。但我不支持 getch()。所以,我尝试了系统调用。

for(i=0;i<5;i++)
{
    system("stty -echo");
    scanf("%c", &a[i]);
    system("stty echo");
    printf("*");
}

我试图关闭回声并获得一个字符并显示*启用回声。但我们知道 scanf 会一直持续到 \n。所以,我无法立即显示 * 一个字符。请有人帮助我。也请建议我任何其他更好的方法。

4

1 回答 1

0

输入完全没有回声的密码相对容易,但一次显示一个字符却不是这样(支持退格 - 或者更糟糕的是,箭头键 - 时这样做更难)。

第一步是“将终端设置为 RAW 模式”以禁用“等待整行”行为。

于 2013-09-17T09:53:24.057 回答