パスワードチェックプログラム

スレッド: ログイン時にユーザーのパスワードをチェックするプログラムを書きます. ユーザーは大声ときに正しいユーザ名とパスワードにログインする必要があります. (プログラムで定義されたユーザ名とパスワード)

実際、, ソフトウェアを構築するときは、この問題をたくさん発生します, その機能をwesbite ログイン. したがって、この問題は非常に便利です.

まず、もしユーザーが大丈夫正しいに入ることを認識する必要があります, ユーザーが間違って入力した場合、彼らは再入力する必要があります, つまり、何度も繰り返さなければなりません. だから、何回繰り返します? 繰り返し回数を事前に知ることができない> - 右だけ新しいまで繰り返し. だから我々は何かを使用する必要があります? ループを使用して 不測の発生回数 ->使用 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ループ内で, 私たちはそれをチェックするために何かを持っている必要があります, 私たちは、以前にユーザー名とパスワードを入力する必要があります. これが私たちのコードは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;
}

このコードで, 我々はログインをカウントするより多くの変数countを使用します, 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 🙂