Comment empêcher la fonction de se répéter ?
Résolu
Harvard226
Messages postés
11
Statut
Membre
-
Harvard226 Messages postés 11 Statut Membre -
Harvard226 Messages postés 11 Statut Membre -
Bonjour,
J'ai créé une fonction pour me permettre d'ajouter une classe ainsi que les renseignements qui vont avec (effectif et code de la classe ) dans un fichier nommé classe qu'elle (la fonction) crée elle. Mais après un premier tour (tout ce passe bien en ce moment là) elle recommence. Je n'ai pourtant pas utilisé de boucle.
J'ai créé une fonction pour me permettre d'ajouter une classe ainsi que les renseignements qui vont avec (effectif et code de la classe ) dans un fichier nommé classe qu'elle (la fonction) crée elle. Mais après un premier tour (tout ce passe bien en ce moment là) elle recommence. Je n'ai pourtant pas utilisé de boucle.
A voir également:
- Comment empêcher la fonction de se répéter ?
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Excel remplir automatiquement une cellule en fonction d'une autre ✓ - Forum Excel
3 réponses
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//renseignements sur les classes
struct classe
{
int num;
char nom[50];
int effec;
};
struct classe classes;
//fonction de recherche classe
int recherche_classe(int code)
{
FILE*classe ;
classe = fopen("classes.g11", "r");
if(classe !=NULL)
{
do
{
fscanf(classe,"%d ;%s ;%ld\n",&classes.num,&classes.nom,&classes.effec);
fflush(stdin);
if(classes.num== code)
{
fclose(classe);
return 1;
}
}while(!feof(classe));
fclose(classe);
return 0;
}
}
//ajouter une classe
<gras>Void ajouter_classe()</gras>
{
FILE*classe;
int code;
/*char c;
c=';';*/
classe=fopen("classes.g11","a");
printf("\nentrez l'identifiant de la classe: ");
scanf("%d",&code);
fflush(stdin);
while(recherche_classe(code)==1)
{
printf("\ncette classe existe deja\n");
printf("entrer un nouvel identifiant");
scanf("%d",&code);
}
if(classe != NULL)
{
classes.num=code;
printf("%d\n",classes.num);
printf("\nentrer le nom de la classe: ");
//gets(classes.nom);
scanf("%s",classes.nom);
fflush(stdin);
printf("%s\n",classes.nom);
printf("\nentrer l'effectif de la classe:");
scanf("%d",classes.effec);
printf("%d\n",classes.effec);
fflush(stdin);
fprintf(classe,"%d ;%s ;%d\n",classes.num,classes.nom,classes.effec);
fflush(stdin);
fclose(classe);
}
}
//afficher la liste des classes
void affiche_classe()
{
FILE*classe =fopen("classes.g11", "r");
printf("la liste des classes est :\n\n");
printf("Code de la classe \t; nom de la classe\t; effectif de la classe\n");
if(classe!=NULL)
{
do
{
fscanf(classe,"%d ;%s ;%d\n",&classes.num,&classes.nom,&classes.effec);
fflush(stdin);
printf("%d\t ;%s\t ;%d\n",classes.num,classes.nom,classes.effec);
}
while (!feof(classe));
fclose(classe);
}
}
int main()
{
int choix;
char T;
do
{
printf("entrer 1 pour ajouter une classe\n");
printf("entrer 2 pour afficher la liste des classes\n");
printf("entrez votre choix: ");
scanf("%d",&choix);
while(choix>=1 && choix<=2)
{
switch(choix)
{
case 1:ajouter_classe();
break;
case 2:affiche_classe();
break;
}
}
printf("\nvoulez vous continuer O/N");
scanf("%s",&T);
fflush(stdin);
}
while(T=='o' ||T=='O');}