C语言 我们如何在没有 getch() 的情况下执行密码提示操作(对于我们输入的每个字符立即显示 *)使用 Linux



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

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

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

在没有回声的情况下输入密码相对容易,但一次显示一个字符的星星则不然(在支持退格键时这样做 - 或者更糟的是,箭头键 - 甚至更难)。

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

相关内容

最新更新