当前位置:首页 » 编程语言 » c语言输入密码星号
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言输入密码星号

发布时间: 2022-06-11 23:40:31

1. 请问,用c语言如何实现密码输入

c语言中可采用getch()函数来实现输入密码字符时,不显示字符到终端上,这时,只需要显示出一个相应的*就可以达到效果了。参考代码及运行效果如下图:

2. C语言如何让输入的字符数据全部显示为星号

是不是因为用了中文字符?我只有英文法文环境,无法试验。
这里给你一个我曾用过的输入英文字符的程序,允许的字符长度个数你可以修改加大。
#include <stdio.h>
#include <stdlib.h>
int main()
{
char u[40];
char p[80];
char u_name[40];
char password[80]="Leaf888";
int i=0;
printf("type user name:\n");
scanf("%s",u_name);
printf("type your password:\n");
while ( i < 80 ){
p[i] = getch();
if (p[i] == '\r') break;
if (p[i] == '\b') { i=i-1; printf("\b \b"); } else {i=i+1;printf("*");};
}
p[i]='\0';
if ( strcmp(password,p)==0) printf("\nThe passwd is right!\n");
else printf("\n You typed wrong password:%s",p);
return 0;
}

3. c语言,输入密码带星号的设计,帮忙解释一下代码的意思。谢谢

system("cls"); -- 清屏幕
printf("请输入加密密码:\n"); -- 提示输入

for(i=0;i<20;){ //循环语句开始,密码不超过20个字符
pass[i]=(char)getch(); // 不需要等待,即时取得1个输入键,作为字符存入pass[i]
if(pass[i]==8){ }; // 如果即时取得的是 Backspace 键,如何处理
if(pass[i]==13){ } else printf("*"); // 如果即时取得的是 Enter 键(键值13), 密码输入结束,pass[i] 赋字符串结束符 '\0', 并结束循环(break)。 否则 打印1个 * 号;
i++; // i 增1,为取下1个字符做准备。
} // 循环语句结束

-------------------
下面详细地看,Backspace 键,如何处理
if(pass[i]==8)
{
printf("\b \b"); // 输出 "\b \b" ,回退1格,输出1个空白,也就是抹去屏幕上一个字符,再让光标回退到空白左面
i--; // Backspace 键是功能键,不作为密码字符,所以 i 减去 1
pass[i]='\0'; // 赋字符串结束符
continue; // 跳到下一次循环。
}
-----
程序写完整了是:
main()
{
int i;
char pass[30];
system("cls");
printf(" input pass\n");
for(i=0;i<20;){
pass[i]=(char)getch();
if(pass[i]==8){ printf("\b \b");i--; pass[i]='\0'; continue; };
if(pass[i]==13){ pass[i]='\0'; break;}
else printf("*");i++;
}
printf("%s",pass);
}
程序缺点是,如果一开始就敲入几个 Backspace 键,密码前几个字符就会丢失。

4. c语言如何实现输入数字密码,然后显示星号,最后能与确定的密码进行比较。

charpass[30];
inti=0;
while(i<29&&(pass[i]=getch())&&pass[i]!=' '){
printf("*");
i++;2
}
pass[i]=0;
if(strcmp(pass,"1234")==0){
printf("Allright ");
}
else{
printf("Wrong ");
}

5. C语言怎么使用密码输入,也就是输入回显星号。

/*密码输入,回显星号的程序*/

int main(void)
{
int i;
static char str[80]; /*静态存储*/

clrscr();
for (i=0; i<80; i++)
{
str[i] = getch(); /*逐次赋值,但不回显*/
printf("*"); /*以星号代替字符个数*/
if (str[i] == '\x0d')/*回车则终止循环*/
{
break;
}
}
printf("\n");
i = 0;
while (str[i] != '\x0d')
{
printf("%c", str[i++]);/*依次输出各元素*/
}
printf("\n");
getch();
return 0;
}

6. C语言中如何输入密码显示星号

voidmain(){charstr[256];intc,i=0;
while(1){
c=getch();if(c==13)break;
printf("*");str[i]=c;i++;
}
str[i]=0;printf("%s ",str);
}

7. c语言密码验证程序,要求输入密码是显示星号

下面程序示意如何输入和验证passwd.
假定已知蜜码 是1234,存在 char password[50] 里。
输入和验证。

#include <stdio.h>
#include <stdlib.h>
int main()
{
char p[50];
char password[50]="1234";
int i=0;

printf("type your password:\n");
while ( i < 50 ){
p[i] = getch();
if (p[i] == '\r') break;
if (p[i] == '\b') { i=i-1; printf("\b \b"); } else {i=i+1;printf("*");};
}
p[i]='\0';
if ( strcmp(password,p)==0) printf("\nThe passwd is right!\n");
else printf("\n You typed wrong password:%s",p);

return 0;
}

8. C语言如何实现输入密码以星号显示

呵呵!
这个很简单的啊,你只要将你的密码保存在一个数组中啊,以便下次匹配密码时使用啊,但你的输出为“*”就好啦,给你个例子啊
密码长度为6哈
#include <stdio.h>
int main()
{

int c[6];
int i = 0;
while(i < 6)
{
c[i++] = getchar();
putchar('*');
}
return 0;
}

9. C语言怎样加密码变成星号

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>

int chcode() {
char pw[50],ch;
char *syspw = "abc"; // 原始密码
int i,m = 0;
printf("请输入密码:");
while(m < 3) {
i = 0;
while((ch = _getch()) != '\r') {
if(ch == '\b' && i > 0) {
printf("\b \b");
--i;
}
else if(ch != '\b') {
pw[i++] = ch;
printf("*");
}
}
pw[i] = '\0';
printf("\n");
if(strcmp(pw,syspw) != 0) {
printf("密码错误,请重新输入!\n");
m++;
}
else {
printf("密码正确!\n");
system("pause");
return 1;
}
}
printf("连续3次输入错误,退出!\n");
system("pause");
return 0;
}

int main() {
int login = chcode();
if(login) printf("登录成功!\n");
else printf("登录失败!\n");
return 0;
}

10. 关于C语言中 输入密码时变星号的 一些问题

#include<stdio.h>
#include<conio.h>
main()
{
char password[20];#include<stdio.h>
#include<conio.h>
main()
{
char password[20]; //定义长度为20的数组password
char ch;
int n=0;
while ((ch = getch()) != '\r') //判断输入的字符是否为回车,若是,则循环结束
{
if (ch == '\b')//若输入的字符是否为退格
{
{
if ((n-1) < 0)//若目前长度为0
{
password[0] = '\0';printf("\b \b");//该秘密位为空,打印
}
else
{
password[n--] = '\0';printf("\b \b");//该密码位的上一位为空,打印
}
}
else
{
password[n] = ch;putchar('*');n++;//赋值该字符,打印密码*,n自增
}
}
password[n] = '\0';//最后以空结束
}

char ch;
int n=0;
while ((ch = getch()) != '\r') //没输入一个字符,判断是否为回车
{
if (ch == '\b')
{
if ((n-1) < 0)
{
password[0] = '\0';printf("\b \b");
}
else
{
password[n--] = '\0';printf("\b \b");
}
}
else
{
password[n] = ch;putchar('*');n++;
}
}
password[n] = '\0';
}