c语言关于密码设置的问题。。只要能把所输入的字符在屏幕上显示*,而且同时把密码赋值给一个特定的值

这个是我写的关于这个问题的一点代码。看不出来哪里错了、、但是结果就是不行
for(i=0;i<3;i++)
{
printf("欢迎使用电子设备管理系统,请输入密码\n");
for(i=0;i<10;i++)
{
mi[i]=getch();
printf("*");
}
if(strcmp(str,mi)==0)
{
printf("登录成功\n");
break;
}
else
{
printf("!!输入错误\n");
}
}

这个不行吧,你没有执行清屏,输入的字符还会显示,只是多输出个*,应该在每次getch之后清屏,printf("欢迎使用电子设备管理系统,请输入密码\n");用个for 语句输出n个*(或者其他方法输出),清屏的函数我忘了,你找找吧,书上有的,这种东西还是用VB做更简单
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-21
mi是多大的数组?根据你这里的情况,mi的大小至少要是11.
前面定义mi的地方:char mi[11];

另外需要加一句话:
printf("欢迎使用电子设备管理系统,请输入密码\n");
memset(mi,0, 11); // 加这句话
for(i=0;i<10;i++)追问

str是事先设好的密码、、是9位密码、、在输入mi是最后要不要输入\0呢

追答

如果str确定是9位,那么你的循环只需要运行9次就可以。这段代码里改一行,加一行:
for(i=0;i<3;i++)
{
printf("欢迎使用电子设备管理系统,请输入密码\n");
for(i=0;i<9;i++) // 这里10改成9
{
mi[i]=getch();
printf("*");
}
mi[10] = '\0'; // 加这行
if(strcmp(str,mi)==0)
{
printf("登录成功\n");
break;
}
else
{
printf("!!输入错误\n");
}
}

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网