CARNET D'ADRESSE AVEC OPTIONS

Krox68 Messages postés 157 Date d'inscription jeudi 17 octobre 2002 Statut Membre Dernière intervention 11 septembre 2004 - 23 févr. 2003 à 15:18
Krox68 Messages postés 157 Date d'inscription jeudi 17 octobre 2002 Statut Membre Dernière intervention 11 septembre 2004 - 9 mars 2003 à 16:29
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/10443-carnet-d-adresse-avec-options

Krox68 Messages postés 157 Date d'inscription jeudi 17 octobre 2002 Statut Membre Dernière intervention 11 septembre 2004 1
9 mars 2003 à 16:29
ok merci pour ce commentaire très instructif par rapport a d'autre...
cs_HalifaX Messages postés 1 Date d'inscription dimanche 9 mars 2003 Statut Membre Dernière intervention 9 mars 2003
9 mars 2003 à 15:39
switch (exp)
{ case val1: ...
break;
case val2: ...
break;
...
default:
}

dans ton cas, ca serait qq chose dans le style:

switch (on)
{ case 1: fichier = fopen("carnet.dat", "a");
...
main();
break;
case 2: carnet();
break;
case 3: exit(0);
break;
default: cout << "

aerreur aucun numero correspondant";
main();
}

Par contre, j'aime pas beaucoup le rappel de la fonction main en milieu de code...le code continue à s'exécuter derriere, sans controle...
ici par exemple:
if(choix > 3)
{
cout << "

aerreur aucun numero correspondant";
main(); << l'appel de la fonction main n'empeche pas le programme de continuer la fonction actuelle...FILE *fichier...
}
ca semble etre une réccursivité non voulue, j'ai pas déroulé le code pour voir si ca avait une incidence, mais en tous cas, c'est pas très heureux..il vaudrait mieux plutot faire une boucle
Do
{
} While JaiPasFini
Krox68 Messages postés 157 Date d'inscription jeudi 17 octobre 2002 Statut Membre Dernière intervention 11 septembre 2004 1
24 févr. 2003 à 10:11
=> cmarsc, c quoi un swith ?
cmarsc Messages postés 455 Date d'inscription mercredi 6 mars 2002 Statut Membre Dernière intervention 18 décembre 2003
24 févr. 2003 à 08:12
int main(void) return 0; ou void main(void) return ; étant donné que c'est DEVC++ la première solution est la plus indiquée

on peut remplacer les nombreux if(s) par des switch(s)
pourquoi tant de place (128) pour des noms ou prenoms Emails
il n'y a pas de teste pour vérifier si le fichier carnet existe ou pas et quoi faire si non existant BOGUE en perspective
de plus pourquoi appeler main alors qu'on est déjà dedans ?
skone007 Messages postés 166 Date d'inscription mercredi 24 avril 2002 Statut Membre Dernière intervention 23 juin 2009
24 févr. 2003 à 00:09
Y a tous a meliorer dsl mais bon....
Krox68 Messages postés 157 Date d'inscription jeudi 17 octobre 2002 Statut Membre Dernière intervention 11 septembre 2004 1
23 févr. 2003 à 15:18
j'attend vos suggestions pour l'améliorer