在C++里如何使密码星号显示并且实现删除功能
程序如下:voidmain(){chara[100],ch,*p=a;cout<<"请输入密码:";ch=getch();while(ch!='\n'){printf("...
程序如下:
void main()
{
char a[100],ch,*p=a;
cout<<"请输入密码:";
ch=getch();
while(ch!='\n')
{
printf("*");
*p=ch;
p++;
ch=getch();
}
} 展开
void main()
{
char a[100],ch,*p=a;
cout<<"请输入密码:";
ch=getch();
while(ch!='\n')
{
printf("*");
*p=ch;
p++;
ch=getch();
}
} 展开
展开全部
这个程序的功能是:
连续输入两次密码,相同则设置密码成功,否则,重新输入;
在输入密码时,可以用backspace键删除;
可以是数字和字母均可;
最多密码设置为20位;
#include<iostream>
#include<conio.h>
using namespace std;
//double i;i=2e4;cout<<i<<endl;
int main()
{
char a[20],b[20]; //a[20]装初始的密码数据
//b[20]装验证是否与a[20]相等的密码数据
int i,j; //循环变量
aa:
cout<<"请输入密码:";
for(i=0;i<=20;i++)
{
//cin>>a[i];
a[i]=getch();//不显示输入的信息
if(a[i]!=13&&a[i]!=8)//当输入的不是回车键和退格键的时候,输出*号
cout<<'*';//用*号代替输入的信息
if(a[i]==8)//使用退格键消除错误输入,重新输入
{
cout<<"\b";
i--;
cout<<" ";
cout<<"\b";
i--;
}
if(a[i]==13)
break; //使输入的密码数值不被他人看见
}
a[i]=0;//字符串结束标志为0或'\0'
cout<<"\n重新输入密码:";
for(j=0;j<=20;j++)
{
//cin>>b[i];
b[j]=getch();//不显示输入的信息
if(b[j]!=13&&b[j]!=8)//当输入的不是回车键和退格键的时候,输出*号
cout<<'*';//用*号代替输入的信息
if(b[j]==8)//使用退格键消除错误输入,重新输入
{
cout<<"\b";
j--;
cout<<" ";
cout<<"\b";
j--;
}
if(b[j]==13)
break; //使输入的密码数值不被他人看见
}
b[j]=0;//字符串结束标志为0或'\0'
while(strcmp(a,b)!=0)
{
cout<<"\a\a\a\a\a\n两次输入的密码不相同,重新设置一下吧!\n";
goto aa;//两次输入的密码不相同,重新设置一下吧
}
cout<<"\n设置密码成功!";
system("pause");
return 0;
}
连续输入两次密码,相同则设置密码成功,否则,重新输入;
在输入密码时,可以用backspace键删除;
可以是数字和字母均可;
最多密码设置为20位;
#include<iostream>
#include<conio.h>
using namespace std;
//double i;i=2e4;cout<<i<<endl;
int main()
{
char a[20],b[20]; //a[20]装初始的密码数据
//b[20]装验证是否与a[20]相等的密码数据
int i,j; //循环变量
aa:
cout<<"请输入密码:";
for(i=0;i<=20;i++)
{
//cin>>a[i];
a[i]=getch();//不显示输入的信息
if(a[i]!=13&&a[i]!=8)//当输入的不是回车键和退格键的时候,输出*号
cout<<'*';//用*号代替输入的信息
if(a[i]==8)//使用退格键消除错误输入,重新输入
{
cout<<"\b";
i--;
cout<<" ";
cout<<"\b";
i--;
}
if(a[i]==13)
break; //使输入的密码数值不被他人看见
}
a[i]=0;//字符串结束标志为0或'\0'
cout<<"\n重新输入密码:";
for(j=0;j<=20;j++)
{
//cin>>b[i];
b[j]=getch();//不显示输入的信息
if(b[j]!=13&&b[j]!=8)//当输入的不是回车键和退格键的时候,输出*号
cout<<'*';//用*号代替输入的信息
if(b[j]==8)//使用退格键消除错误输入,重新输入
{
cout<<"\b";
j--;
cout<<" ";
cout<<"\b";
j--;
}
if(b[j]==13)
break; //使输入的密码数值不被他人看见
}
b[j]=0;//字符串结束标志为0或'\0'
while(strcmp(a,b)!=0)
{
cout<<"\a\a\a\a\a\n两次输入的密码不相同,重新设置一下吧!\n";
goto aa;//两次输入的密码不相同,重新设置一下吧
}
cout<<"\n设置密码成功!";
system("pause");
return 0;
}
展开全部
具体实现的代码如下:
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
char password[100];
int index=0;
while(1)
{
char ch;
ch=getch();
if(ch==8) //退格键
{
if(index!=0)
{
cout<<char(8)<<" "<<char(8);
index--;
}
}
else if(ch=='\r') //回车键
{
password[index]='\0';
cout<<endl;
break;
}
else
{
cout<<"*";
password[index++]=ch;
}
}
cout<<"password:"<<password<<endl;
return 0;
}
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
char password[100];
int index=0;
while(1)
{
char ch;
ch=getch();
if(ch==8) //退格键
{
if(index!=0)
{
cout<<char(8)<<" "<<char(8);
index--;
}
}
else if(ch=='\r') //回车键
{
password[index]='\0';
cout<<endl;
break;
}
else
{
cout<<"*";
password[index++]=ch;
}
}
cout<<"password:"<<password<<endl;
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<iostream>
#include<conio.h>
using namespace std;
void main()
{
char a[100],ch,*p=a;
cout<<"请输入密码:";
//ch=getch();
while((ch=getch())!=13)
{ ;
printf("*");
*p=ch;
p++;
}
}
#include<conio.h>
using namespace std;
void main()
{
char a[100],ch,*p=a;
cout<<"请输入密码:";
//ch=getch();
while((ch=getch())!=13)
{ ;
printf("*");
*p=ch;
p++;
}
}
来自:求助得到的回答
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询