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