DuCode01.com
Blog de partage de tutoriels et de codes sources
jeudi 31 mars 2016
Fonction récursive calculant le minimum d'un tableau en C/C++
int minimum(int t[],int indice,int nb) {
int mini;
if(indice==nb-1)
return t[indice];
else if(indice<nb)
{ mini = minimum(t,indice+1,nb);
if(t[indice]>mini)
return mini;
else
return t[indice];
}
else return (0);
}
Fonction récursive calculant le maximum d'un tableau en C/C++
int maximum(int t[],int indice,int nb) {
int maxi;
if(indice==nb-1)
return t[indice];
else if(indice<nb)
{ maxi = maximum(t,indice+1,nb);
if(t[indice]<maxi)
return maxi;
else
return t[indice];
}
else return (0);
}
lundi 22 février 2016
Connaitre le code ASCII d'une touche en C
Dans cet article, je vais vous montrer comment connaitre le code ASCII d'une touche appuyer par l'utilisateur comme les touche entré, backspace,...
Pour cela nous allons utiliser une fonction de saisie de caractère de façon invisible dans la console qui est définie dans la bibliothèque conio.h.
illustration du code :
Pour cela nous allons utiliser une fonction de saisie de caractère de façon invisible dans la console qui est définie dans la bibliothèque conio.h.
illustration du code :
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
char car;
printf("appuyer sur une touche pour avoir son code ASCII\n");
car=getch();
printf("Le code ASCII est : %d",car);
system("PAUSE" );
return 0;
}
samedi 20 février 2016
Faire un LOGIN en Langage C [Basic]
Parfois, il devient nécessaire de simuler une fenêtre de connexion
en mode console.
Dans ce tutoriel, je vais vous montrer comment faire un
login en C. Pour cela, nous travaillerons en mémoire (donc pas de fichier ni de
base de données).
Pour commencer, on définit deux
(2) constantes de chaine de caractère contenant le nom le nom d’utilisateur et
le mot de passe et deux autres qui stockerons respectivement le code ASCII des
touches entrer et Backspace (effacement). On suppose que le nom d’utilisateur
« username » et que le mot de passe est « password ».
Commençons par demander à l’utilisateur de fournir son nom d’utilisateur en partant du principe qu’il continuera à saisir tant qu’il ne fournit pas le nom d’utilisateur correct (dans notre cas c’est « username »).
On permet la saisie du mot de passe
Voici le code complet : copie du code source dans le sous dossier code source
#define NAME "username"
#define PASS "password"
#define ENTER 13
#define BACKSPACE 8
Commençons par demander à l’utilisateur de fournir son nom d’utilisateur en partant du principe qu’il continuera à saisir tant qu’il ne fournit pas le nom d’utilisateur correct (dans notre cas c’est « username »).
char nom_user [20] ;
do
{
system ("CLS");
printf ("Nom d'utilisateur : ");
scanf("%s", nom_user);
if(strcmp(nom_user,NAME)!=0)
{
Printf ("Nom d'utilisateur
invalide !");
getch ();
}
}while (strcmp(nom_user,NAME)!=0);
Maintenant on il nous reste plus que le mot de passe. Dans la
saisie du mot de passe, on ne doit pas afficher les caractères saisis par
l’utilisateur. A leur place, on affiche
le caractère « * ». Pour effectuer cela, on saisira caractère par caractère. Faites les
déclarations suivantes
char c ; //Stocke le
caractère courant
char mot_pass [20] ; //Mot de
passe final saisie
char chaine [20]; //chaine
utilisé pour faire la saisie initial du mot de passe
int nb ; //compte le
nombre de caractère que contient le mot de passe
int i ; //pour
parcourir les caractères saisis
do
{
printf("Mot de passe : ");
nb=0;
//L’utilisateur
saisie tant qu’il ne tape pas sur la touche entrer
while ((c=getch())!=ENTER)
{
if(c!=BACKSPACE &&
nb<20)
{
chaine [nb]=c;
nb++;
printf("*");
}
else
{
if(nb>0)
{
//Pour gérer l'effacement
nb--;
chaine[nb]='\0';
}
}
}
//On copie tous les caractères contenu
dans la chaine
for(i=0;i<nb; i++)
{
mot_pass[i]=chaine[i];
}
mot_pass[i]='\0'; //On indique le
caractère de fin de ligne
if(strcmp(mot_pass, PASS)!=0)
{
printf("\n Mot de passe
invalide \a\n");
}
}while(strcmp(mot_pass,PASS)!=0);
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include<conio.h>
#define NAME "username"
#define PASS "password"
#define ENTER 13
#define BACKSPACE 8
int main()
{
char c,nom_user[20],mot_pass[20],chaine[20];
int nb,i;
do
{
system("CLS");
printf("Nom d'utilisateur : ");
scanf("%s",nom_user);
if(strcmp(nom_user,NAME)!=0)
{
printf("Nom d'utilisateur invalide !");
getch();
}
}while(strcmp(nom_user,NAME)!=0);
do
{
printf("Mot de passe : ");
nb=0;
while((c=getch())!=ENTER)
{
if(c!=BACKSPACE && nb<20)
{
chaine[nb]=c;
nb++;
printf("*");
}
else
{
if(nb>0)
{
//Pour gérer l'effacement
nb--;
chaine[nb]='\0';
}
}
}
//On copie tous les caractères contenu dans la chaine
for(i=0;i<nb;i++)
{
mot_pass[i]=chaine[i];
}
mot_pass[i]='\0'; //On indiquele caractère de fin de ligne
if(strcmp(mot_pass,PASS)!=0)
{
printf("\nMot de passe invalide \a\n");
}
}while(strcmp(mot_pass,PASS)!=0);
return 0;
}
#include <stdlib.h>
#include <string.h>
#include<conio.h>
#define NAME "username"
#define PASS "password"
#define ENTER 13
#define BACKSPACE 8
int main()
{
char c,nom_user[20],mot_pass[20],chaine[20];
int nb,i;
do
{
system("CLS");
printf("Nom d'utilisateur : ");
scanf("%s",nom_user);
if(strcmp(nom_user,NAME)!=0)
{
printf("Nom d'utilisateur invalide !");
getch();
}
}while(strcmp(nom_user,NAME)!=0);
do
{
printf("Mot de passe : ");
nb=0;
while((c=getch())!=ENTER)
{
if(c!=BACKSPACE && nb<20)
{
chaine[nb]=c;
nb++;
printf("*");
}
else
{
if(nb>0)
{
//Pour gérer l'effacement
nb--;
chaine[nb]='\0';
}
}
}
//On copie tous les caractères contenu dans la chaine
for(i=0;i<nb;i++)
{
mot_pass[i]=chaine[i];
}
mot_pass[i]='\0'; //On indiquele caractère de fin de ligne
if(strcmp(mot_pass,PASS)!=0)
{
printf("\nMot de passe invalide \a\n");
}
}while(strcmp(mot_pass,PASS)!=0);
return 0;
}
Inscription à :
Articles (Atom)