高手帮帮忙解答!!

yoyo82 2004-09-26 04:29:42
用C语言写程序,怎么样使输入的字符或数字立即变为星号“*”不让别人看到,像输入密码那样???我试了大家说的办法都没有用,输入后可以把它显示出来!!用printf语句。请那位高手帮忙写写。我在此谢谢各位。

请大家帮菜鸟个忙,解决后不甚感激。
...全文
109 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
redolive 2004-09-27
  • 打赏
  • 举报
回复
对字符串的使用而言, 最好是先用memset置为全0, 然后再使用.可以防止字符串无结束标致.

另:
使用字符最好先用宏定义所需要的字符串长度, 申请存储空间使用长度加1.


yoyo82 2004-09-26
  • 打赏
  • 举报
回复
非常谢谢啊!!
yoyo82 2004-09-26
  • 打赏
  • 举报
回复
谢谢各位高手啊!!请问输入两位数,能把它打印出来吗??
truediego 2004-09-26
  • 打赏
  • 举报
回复
嗯,理论上是需要的,也可以不要,但是程序稳定性稍差一点点
不需要的时候,记得给最后一个字符后面赋上 '\0'

memset的作用就是给szStr的每个元素都赋上0的值, 0 就是 '\0'
最后一个参数是元素的个数
ninansky 2004-09-26
  • 打赏
  • 举报
回复
上面那个"memset(szStr, 0, sizeof(szStr));"是什么意思?
可不可以不要的啊
truediego 2004-09-26
  • 打赏
  • 举报
回复
huhu,大家回得好快啊,看的时候0回复,发出回复后,都这么多了,哈哈
truediego 2004-09-26
  • 打赏
  • 举报
回复
#include "stdio.h"
#include "string.h" //memset
#include "conio.h" // getch

int main()
{
char szStr[6];
int i;
memset(szStr, 0, sizeof(szStr));

printf("Please Input < 6 char :");

for (i = 0;i< 6;i++) {
szStr[i] = getch();
if (szStr[i] == 13) {
break;
}
printf("*");
}
printf("\n");
}
efghkk 2004-09-26
  • 打赏
  • 举报
回复
char password;
password=getch();
put('*');
用这个不就好了?
o1n 2004-09-26
  • 打赏
  • 举报
回复
这个我还真不知道。
占个位学习一下!
歪歪歪 2004-09-26
  • 打赏
  • 举报
回复
混合编程,
用汇编实现!

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧