這裡蒐索程式師資訊,查找有用的技術資料
當前位置:首頁 » 編程語言 » c語言密碼的設置與輸入對比
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言密碼的設置與輸入對比

發布時間: 2022-04-22 21:16:17

① VC c語言怎麼讓輸入密碼變成*****在用if進行比較

改成這樣就可以了:
void main()
{ int i;
char password[11]={'\0'};
char c[11]="1234567891";
for(i=0;i<10;i++)
{
password[i]=getch();
printf("*");

}
if(strcmp(c,password)==0)
printf("正確\n");
else
printf("錯誤\n");
}

因為你使用的是strcmp函數,比較的是兩個字元串,而你的數組沒有給字元串留出保存終止符號'\0'的機會也沒有保存終止符號'\0'的空間,所以比較時,strcmp不知道字元串在哪裡終止.

② C語言 怎麼輸入字元串比較問題

#include <stdio.h>
int main()
{char a[10],b[10],c[]="密碼正確",d[]="密碼錯誤"; int i=0;
printf("請設定10位字元以內密碼");
scanf("%s",a);
printf("密碼設置成功,請輸入密碼解鎖");
scanf("%s",b);
while(i<4)
if(strcmp(a,b)=1) break;
else i++;
printf("%s",i==3?d:c);
}

③ C語言用戶登錄系統賬戶密碼比對

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

typedefstructaccount{
charname[32];
characc[16];
charpsw[16];
}Acc;

//data是結構體數組,filename是文件絕對地址,n保存讀入的結構體數量
voidGetDataFromTxt(Acc*data,constchar*filename,int*n)
{
FILE*fp=fopen(filename,"r");
if(NULL==fp){
printf("Openfilefailedornothisfile! ");
return;
}

inti=0;
while(!feof(fp))
{
fscanf(fp,"%s%s%s",data[i].name,data[i].acc,data[i].psw);
i++;
}
*n=i;
}

intmain()
{
inti,n;
Accdata[100];
//獲取數據
GetDataFromTxt(data,"E:\secret.txt",&n);
printf("n=%d ",n);
printf("姓名賬號密碼 ");
for(i=0;i<n;++i)
printf("%-4s%-16s%-10s ",data[i].name,data[i].acc,data[i].psw);

//登錄示例
putchar(' ');
characc[16],psw[16];
do{
//這里只是粗略地寫了一個
//具體的賬號錯誤或者密碼錯誤自行發揮
printf("請輸入賬號:");
scanf("%s",acc);
printf("請輸入密碼:");
scanf("%s",psw);
for(i=0;i<n;++i)
{
if(strcmp(acc,data[i].acc)==0&&strcmp(psw,data[i].psw)==0){
printf("登陸成功! ");
break;
}
}
if(i==n){
printf("賬號或密碼不正確!請重新輸入! ");
}else{
break;
}
}while(1);
printf("Byebye!!! ");

return0;
}

④ 單片機c語言密碼設定和密碼比對程序

關於AT24C02的讀寫是很簡單的,網上有很多示例代碼。在這里我給一個C語言的,是51的程序.

#include "24C02.H"

void Start() {
SDA=1;
SDA=1;
_nop_();
SCL=1;
SCL=1;
_nop_();
SDA=0;
SDA=0;
_nop_();
SCL=0;
SCL=0;
_nop_();
}

void Stoped() {
SCL=0;
SCL=0;
_nop_();
SDA=0;
SDA=0;
_nop_();
SCL=1;
SCL=1;
_nop_();
SDA=1;
SDA=1;
_nop_();
}

void Ack() {
SDA=0;
SDA=0;
_nop_();
SCL=1;
SCL=1;
_nop_();
SCL=0;
SCL=0;
_nop_();
SDA=1;
SDA=1;
_nop_();
}

void NoAck() {
SDA=1;
SDA=1;
_nop_();
SCL=1;
SCL=1;
_nop_();
SCL=0;
_nop_();
}

bit TestAck() {
bit ErrorBit;
SDA=1;
SDA=1;
_nop_();
SCL=1;
SCL=1;
_nop_();
ErrorBit=SDA;
_nop_();
_nop_();
SCL=0;
_nop_();
return(ErrorBit);
}

bit Write8Bit(unsigned char iic_input) {
unsigned char temp;
for(temp=8;temp!=0;temp--) {
SDA=(bit)(iic_input&0x80);
SCL=1;
SCL=1;
_nop_();
SCL=0;
SCL=0;
_nop_();
iic_input=iic_input<<1;
}
return(0);
}

void Write24c02(unsigned char *Wdata,unsigned int RomAddress,unsigned char number,unsigned char Write_Add) {
unsigned char RomHAddress,RomLAddress;
for(;number!=0;number--){
RomHAddress = (unsigned char)(RomAddress>>8);
RomLAddress = (unsigned char)RomAddress;
RomAddress++;
Start();
Write8Bit(Write_Add);
TestAck();
Write8Bit(RomHAddress);
TestAck();
Write8Bit(RomLAddress);
TestAck();
Write8Bit(*Wdata++);
TestAck();
Stoped();
DelayMs(5);
}

}

unsigned char Read8Bit() {
unsigned char temp,rbyte=0;
for(temp=8;temp!=0;temp--) {
SCL=1;
SCL=1;
_nop_();
_nop_();
rbyte=rbyte<<1;
rbyte=rbyte|((unsigned char)(SDA));
SCL=0;
SCL=0;
_nop_();
}
return(rbyte);
}

void Read24c02(unsigned char *RamAddress,unsigned int RomAddress,unsigned char bytes,unsigned char Write_Add,unsigned char Read_Add) {
unsigned char RomHAddress,RomLAddress;
RomHAddress = (unsigned char)(RomAddress>>8);
RomLAddress = (unsigned char)RomAddress;
Start();
Write8Bit(Write_Add);
TestAck();
Write8Bit(RomHAddress);
TestAck();
Write8Bit(RomLAddress);
TestAck();
Start();
Write8Bit(Read_Add);
TestAck();
while(bytes!=1)
{
*RamAddress=Read8Bit();
Ack();
RamAddress++;
bytes--;
}
*RamAddress=Read8Bit();
NoAck();
Stoped();
}

#define FIRSTADDRESS 0
#define WriteDeviceAddress 0xA0
#define ReadDeviceAddress 0xA1

main()
{
unsigned char a[10];
..............

Write24c02(a,FIRSTADDRESS,10,WriteDeviceAddress);

Read24c02(a,FIRSTADDRESS,10,WriteDeviceAddress,ReadDeviceAddress);
..............

}

要注意的是它的讀寫設備地址不一樣,並且要根據你的晶元地址腳的電平來設定。
還有一點,讀寫時,通常用的是頁讀寫方式,注意,寫入一次只能連續寫入64位元組。讀沒有限制。

最後補充一點,你的密碼最好用MD5方式加密。因為24c02晶元中的數據是可以被燒錄器讀出的。用md5加密,才能保證密碼自身的保密。

⑤ c語言:為什麼密碼輸入一致的顯示不一致。

姓名部分較簡單,你可以自己寫。
口令部分寫好了。
密碼輸入:允許回退鍵更正輸入,回車結束輸入

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
main()
{
char p[50];
char UserName[50]="student";
char password[50]="iamtiger";
int i=0;
int n;
printf("Please enter your name:\n");
scanf("%s",UserName);
n=0;
Loop:
i=0;
printf("Please enter your passwd:\n");
fflush(stdin);
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("\npasswd is right!\n");
else {
printf("\npassword wrong\n");
n++;
if (n>=3) { printf("Err bye !\n"); return 0;} else goto Loop;
};
return 0;
}

⑥ c語言賬號與密碼檢查的註解

摘要 編寫一個密碼檢測程序,程序執行時,提示"Input password:「要求用戶輸入密碼(標准密碼預先設定為"hnkd2012」),然後通過字元串比較函數比較輸入密碼和標准密碼是否相等。若相等,則顯示「Congratulation!」;若不相等,則提示"Error,please input again:"重新輸入,3次都不相等則提示"The program is terminated!"並終止程序的執行。要求自己編寫一個字元串比較函數,而不使用系統的strcmp( )函數。

⑦ 請問,用C語言如何實現密碼輸入

c語言中可採用getch()函數來實現輸入密碼字元時,不顯示字元到終端上,這時,只需要顯示出一個相應的*就可以達到效果了。參考代碼及運行效果如下圖: