用c语言怎么能实现密码输入?

microtan0902 2004-04-06 10:08:26
用c语言怎么能实现密码输入?
就是输入一个字符串,与内定的密码进行比较(这部分我都明白),但问题是,我怎么才能做到输入时显示的都是***************而实际输入的是我的密码如(123456798),最好用代码告诉我。谢谢
...全文
231 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
liushuaiboy 2004-05-04
  • 打赏
  • 举报
回复
mark
kinglonghr 2004-05-04
  • 打赏
  • 举报
回复
能解释一下printf(prompt)吗?
而且程序里有3处警告,如何处理?
八卦之魂 2004-04-09
  • 打赏
  • 举报
回复
收藏
qepyxyx065 2004-04-07
  • 打赏
  • 举报
回复
最简单的就是用c自带的库函数,不回显字符,最后比较2次输入的数组中的字符就ok啦
pacman2000 2004-04-07
  • 打赏
  • 举报
回复
unix/linux里面有个库函数:
#include <unistd.h>
char *getpass( const char * prompt );
xumiao0705 2004-04-07
  • 打赏
  • 举报
回复
楼上的加上完整的字符合法性校验和密码校验就是完整的密码输入程序了。
zfrandzfr 2004-04-07
  • 打赏
  • 举报
回复
for (i=1;i<8;i++)
{
char aa[8];
cin>>aa[i];
cou<<"*";
}

vconan 2004-04-07
  • 打赏
  • 举报
回复
shankeke(sk) 的程序,else if 前面少了一个‘}’
运行正确
vconan 2004-04-07
  • 打赏
  • 举报
回复
KingI(↑㊣↑) :

error C2065: 'getch' : undeclared identifier
为什么会这样,COPY过去的,改成getchar()就没出错
shankeke 2004-04-07
  • 打赏
  • 举报
回复
char *get_password(const char *prompt)
{
static char buffer[128];
int i = 0;
char letter = NULL;

printf(prompt);
while((i<127)&&(letter!='\r'))
{
letter = getch();
if(letter == BACKSPACE)
{
if(i>0)
{
buffer[--i] = NULL;
putchar(BACKSPACE);
putchar(' ');
putchar(BACKSPACE);
}
else
{
putchar(7); //响铃
}
else if(letter != '\r')
{
buffer[i++] = letter;
putchar('*');
}
}
buffer[i] = NULL;
return (buffer);
}
icelover 2004-04-07
  • 打赏
  • 举报
回复
#include<stdio.h>
#include<conio.h>
#include<string.h>

#define BACKSPACE 8
char *get_password(const char *prompt)
{
static char buffer[128];
int i = 0;
char letter = NULL;

printf(prompt);
while((i<127)&&(letter!='\r'))
{
letter = getch();
if(letter == BACKSPACE)
{
if(i>0)
{
buffer[--i] = NULL;
putchar(BACKSPACE);
putchar(' ');
putchar(BACKSPACE);
}
else
{
putchar(7); //响铃
}
else if(letter != '\r')
{
buffer[i++] = letter;
putchar('*');
}
}
buffer[i] = NULL;
return (buffer);
}

void main()
{
char *password;

password = get_password("Enter password: ");
if(strcmp(password, "password"))
printf("\nPassword Incorrect\n");
else
printf("\nPassword Ok\n");
}
KingI 2004-04-07
  • 打赏
  • 举报
回复
/*带验证的密码输入程序*/
#include <stdio.h>
#include <string.h>
#define N 8

main()
{
char c,s[20];
char a[20]="12345678"; /*原始密码*/
int i;

for (i=0; i<N; i++)
{
c=getch();
putchar('*');
s[i]=c;
}
if (!strcmp(s,a))
printf ("Password is right!");
else
printf ("Password is wrong!");
return 0;
}
hcj2002 2004-04-06
  • 打赏
  • 举报
回复
写错了,应该是getch();
Caoyu015 2004-04-06
  • 打赏
  • 举报
回复
N年前写的:)
Caoyu015 2004-04-06
  • 打赏
  • 举报
回复
#define MAXLINE 255


char * cy_gets()
{
static char t[ MAXLINE ];
char ch;
int flag=0,i=0;

for ( ; i < MAXLINE; )
{
ch = getch();

switch( ch )
{
case '\r':
case '\n':
t[i] = '\0';
return t;

case '\b':
if ( i > 0 )
i--;
if ( i == 0 )
flag++;

if ( i>0||flag==1 )
{
putch( '\b' );
putch( ' ' );
putch( '\b' );
}
break;

default:
t[i] = ch;
i++;
flag = 0;
if ( ch == ' ' )
putch( ' ' );
else
{
putch( '*' );
putch( '\a' );
}
}

}

t[ MAXLINE - 1 ] = '\0';
return t;
}
hcj2002 2004-04-06
  • 打赏
  • 举报
回复
用不带回显得的getchar()获得输入,然后如果输入满足是一个合法字符则用putchar()输出*号。

69,379

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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