我正在为"密码提示"编写C代码。我需要为用户输入的每个字符显示 *。但是我不支持 getch()。所以,我尝试了系统调用。
for(i=0;i<5;i++)
{
system("stty -echo");
scanf("%c", &a[i]);
system("stty echo");
printf("*");
}
我试图关闭回声并获取字符并显示*启用回声。但我们知道 scanf 会持续到 。所以,我无法立即显示*一个字符。有人帮我。也恳请建议我任何其他更好的方法。
在没有回声的情况下输入密码相对容易,但一次显示一个字符的星星则不然(在支持退格键时这样做 - 或者更糟的是,箭头键 - 甚至更难)。
第一步是"将终端设置为RAW模式"以禁用"等待整线"行为。