1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
|
#include <stdio.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdbool.h>
#define TAILLE_MAX 50
/*
** Fonction permettant de verifier si l'utilisateur est deja créer
** @Unuser : l'utilisateur à tester
** return true : L'utilisateur n'est pas présent
** return false : l'utilisateur est présent
*/
bool checkUser(char *Unuser)
{
// on va ouvrir le fichier qui contient l'ensemble des utlisateurs
FILE* fichier = NULL;
char chaine[TAILLE_MAX] = "";
//contient une ligne du fichier
char lignefichier[40];
fichier = fopen("user.txt", "r");
if (fichier != NULL)
{
//on va parcourir le fichier
fgets(chaine, TAILLE_MAX, fichier);
//on va separer le login du mdp
char *c = chaine;
char tab[2][20];
int j = 0;
do
{
int k = 0;
while(*c != ':' && *c) tab[j][k++] = *c++;
tab[j++][k] = 0;
} while(*c++);
printf("%s \n",tab[0]);
printf("%s \n",Unuser);
if(!strcmp(Unuser, tab[0]))
{
return true;
fclose(fichier); // On ferme le fichier qui a été ouvert
}
else
{
printf("L'utilisateur existe déja \n");
return false;
fclose(fichier); // On ferme le fichier qui a été ouvert
}
}
else
{
printf("Premier utilisateur \n");
return true;
}
}
/*
** Fonction permettant de verifier la concordance des mots de passe saisis
** @Password : Password à tester
** @Cpassword : Password saisie une seconde fois
** return true : bonne concordance
** return false : ne corresponde pas
*/
bool checkPassword(char *Password, char *Cpassword)
{
if(!strcmp(Password, Cpassword))
{
return true;
}
else
{
printf("Erreur de saisie dans les mots de passes \n");
return false;
}
return false;
}
int main(int argc,char *argv[])
{
char User[20];
char Password[20];
char Cpassword[20];
bool verifuser = false;
bool verifpassword = false;
//va contenir la ligne à inserer dans le fichier
char ligne[50];
//saisie de l'utilisateur
do
{
printf("Veuillez saisir l'utilisateur à créer :");
scanf("%s",User);
verifuser = checkUser(User);
} while (verifuser == false);
//saisie du mot de passe
do
{
verifpassword = false;
printf("Veuillez le mot de passe de l'ulisateur :");
scanf("%s",Password);
printf("Confirmez le mot de passe de l'ulisateur :");
scanf("%s",Cpassword);
verifpassword = checkPassword(Password,Cpassword);
}while(verifpassword == false);
// on va ouvrir le fichier qui contient l'ensemble des utlisateurs
//si celui ci n'existe pas alors on le créer
FILE* fichier = NULL;
fichier = fopen("user.txt", "a+");
if (fichier != NULL)
{
strcpy(ligne, User);
strcat(ligne,":" );
strcat(ligne, Password);
strcat(ligne, "\n");
printf("%s\n",ligne);
//on insere la ligne dans le fichier
fputs(ligne, fichier);
fclose(fichier);
}
else
{
printf("erreur dans l'ouverture de fichier \n");
}
return 0;
} |
Partager