密码检查程序
其实, 构建软件时,您会遇到这样的问题很多, wesbite mà có chức năng đăng nhập. 所以这个问题是非常有用的.
首先,你需要认识到,如果用户输入正确的好吗, 如果用户输入了错误的,他们必须重新输入, 即必须重复多次. 那么有多少次重复? 重复,直到新的权利只 - >事先不知道多少次重复. 所以我们要使用的东西? 使用循环, 意外发生数 ->使用 而HOAC而做.
现在,你还记得while循环的含义,而做:
- 而: 虽然一些正确的事情,做一些工作.
- 而做: 工作,同时东西仍然是正确的.
的 2 这种结构是在词义和用法,所以你可以使用的非常相似. 但仔细观察,我们会看到其中的差别.
代码中使用while循环:
/** * Program login, enter username and passwrod until they correct */ #include <stdio.h> #include <string.h> // for compare string by strcmp int main() { // username and password we have char username[] = "nguyenvanquan7826"; char passwrod[] = "0codauem"; // username and password user must enter to login char user[50], pass[50]; printf("Enter your username: "); gets(user); printf("Enter your password: "); gets(pass); while(strcmp(user, username) != 0 || strcmp(pass, passwrod) != 0) { printf("\nusername or passwrod incorrect\n"); printf("Enter your username: "); gets(user); printf("Enter your password: "); gets(pass); } printf("Login success!\n"); return 0; }
在上面的代码,你注意一些要点:
使用库 文件string.h 使用字符串比较函数 STRCMP.
通过用户名和密码字符串我们应该使用 得到 要加入 不应该使用的scanf.
在由前检查条件while循环, 因此,我们必须有一些为它检查, do vậy chúng ta cần nhập vào user và pass ở trước đó. Điều này làm code của chúng ta bị lặp lại thừa một lần ở phía trên trước khi dùng vòng while. Tuy nhiên chúng ta cũng có thể không cần nhập trước, như vậy chuỗi user và pass ban đầu sẽ rỗng.
Sau đây là code mà chúng ta sử dụng do-while.
/** * Program login, enter username and passwrod until they correct */ #include <stdio.h> #include <string.h> // for compare string by strcmp int main() { // username and password we have char username[] = "nguyenvanquan7826"; char passwrod[] = "0codauem"; // username and password user must enter to login char user[50], pass[50]; int count = 0; // Counting the number of login times do{ if(count > 0) printf("\nusername or passwrod incorrect\n"); printf("Enter your username: "); gets(user); printf("Enter your password: "); gets(pass); count++; }while(strcmp(user, username) != 0 || strcmp(pass, passwrod) != 0); printf("Login success!\n"); return 0; }
Trong code này, chúng ta sử dụng thêm biến count để đếm số lần login, nếu lần đầu tiên thì không hiện ra là mật khẩu sai, chỉ hiện từ lần thứ 2 trở đi mà thôi.
基本上, bài này khá dễ dàng. Hi vọng các bạn có thể nắm vững 🙂
Mới học lập trình C, học được rất nhiều thứ hay ho từ blog của bạn. 感谢!
谢谢. Mình vừa ghé qua blog của bạn, cũng thấy rất nhiều bài viết hay trên “Tôi Sống”. 🙂
Ban oi neu minh co so lan yeu cau nhap mat khau la 5, neu nhap vao lan dau sai se bao ban con 4 lan nhap, nhap lan thu 2 sai se bao ban con 3 lan nhap,.. tiep tuc nhu vay den lan ke cuoi thi se thong bao ban chi con 1 lan nhap. Neu vay thi minh phai viet nhu the nao?
Cam on
您创建 1 biến để đếm số lần nhập sai là được.