c語言中可采用getch()函數(shù)來實現(xiàn)輸入密碼字符時,不顯示字符到終端上,這時,只需要顯示出一個相應的*就可以達到效果了。參考代碼及運行效果如下圖:
10年積累的成都做網(wǎng)站、成都網(wǎng)站設計經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先建設網(wǎng)站后付款的網(wǎng)站建設流程,更有東陽免費網(wǎng)站建設讓你可以放心的選擇與我們合作。
代碼如下:
#includestdio.h
#pragma warning(disable:4996)
#includestring.h
int main()
{
int i = 0;
char password[10] = { 0 };
printf("請輸入密碼:");
while (i 3)
{
scanf("%s", password);
printf("\n");
if (strcmp(password, "972816") == 0)
{
printf("登錄成功\n");
break;
}
else
{
i++;
if (i != 3)
printf("再輸入一次");
}
}
if (i == 3)
printf("密碼錯誤三次退出登錄界面\n");
system("pause");
return 0;
擴展資料:
#include后面有兩種方式,;和""前者先在標準庫中查找,查找不到在path中查找。后者為文件路徑,若直接是文件名則在項目根目錄下查找。
引用方法:#include?stdio.h
注意事項:在TC2.0中,允許不引用此頭文件而直接調(diào)用其中的函數(shù),但這種做法是不標準的。也不建議這樣做。以避免出現(xiàn)在其他IDE中無法編譯或執(zhí)行的問題。
參考資料來源:百度百科—include
參考資料來源:百度百科—stdio.h
是三種不同的函數(shù)驗證登陸吧,check1、check2、check3三類函數(shù)分別如下:
void check1()輸入輸出功能全部在函數(shù)完成;
void check2(name,pass)輸入在main中傳入函數(shù)進行判斷輸出;
int check3(name,pass)輸入輸出均在main函數(shù)完成,函數(shù)只做判斷返回結(jié)果。
#include "stdafx.h"
#include iostream
#include string
void check1()
{
char name[10], pass[10];
printf("請輸入賬號和密碼:\n");
scanf_s("%s%s", name, 10, pass, 10);
if (!strcmp(name,"admin")!strcmp(pass,"123"))
printf("賬號密碼正確!\n");
else
printf("賬號或密碼錯誤!\n");
}
void check2(char *n, char *p)
{
if (!strcmp(n, "admin") !strcmp(p, "123"))
printf("賬號密碼正確!\n");
else
printf("賬號或密碼錯誤!\n");
}
int check3(char *n, char *p)
{
if (!strcmp(n, "admin") !strcmp(p, "123"))
return 1;
else
return 2;
}
int main()
{
char name[10], pass[10];
check1();
printf("請輸入賬號和密碼:\n");
scanf_s("%s%s", name, 10, pass, 10);
check2(name, pass);
printf("請輸入賬號和密碼:\n");
scanf_s("%s%s", name, 10, pass, 10);
if(check3(name,pass)==1)
printf("賬號密碼正確!\n");
if(check3(name,pass)==2)
printf("賬號或密碼錯誤!\n");
system("pause");
return 0;
}
可以定義兩個字符數(shù)組;
一個存放正確密碼;
另一個數(shù)組內(nèi)的內(nèi)容由用戶輸入;
調(diào)用strcmp函數(shù),若返回值為0則說明兩者完全相等;
列子:
char a[10]="4488" //保存正確密碼
char b[10];
gets(b) //用戶輸入
if(strcmp(a,b)==0)
printf(" 匹配成功 ");
else
printf("匹配失敗");
更多追問追答
追問
#include
void main()
{
char a[10]="8844";
char b[10];
gets(b)
if(strcmp(a,b)==0)
printf("yes");
else
printf("no");
getch();
#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("連續(xù)3次輸入錯誤,退出!\n");
system("pause");
return?0;
}
int?main()?{
int?login?=?chcode();
if(login)?printf("登錄成功!\n");
else?printf("登錄失敗!\n");
return?0;
}