IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

probleme c (des erreurs ?? oû ?? pourquoi? )


Sujet :

C

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 15
    Points : 4
    Points
    4
    Par défaut probleme c (des erreurs ?? oû ?? pourquoi? )
    bonjour !
    je suis un nouveaux et je suis un débutant en C++ .
    Mais j'ai un probleme dans un de mes programmes ...
    Jetez y un p'tit coup d'oeil et dite moi les ereurs !!! la correction !


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    /* ce prog a été concu par l'as de trefle */
    /* c'est un questionnaire ! */
    #include <stdio.h>    
    #include <string.h>
    #include <time.h>
     
    void main (void)
    {
    printf("happy game\n");
    int a ;
    char b[99] ;
    int buf ;
    unsigned int lpti ;
    printf("qu'est ce qu'il y a entre ciel et terre ? ") ;
    scanf( "%s" , b ) ;
    	for(a=0 ; a<1 ; a=1+a)
    	{
    	if(strcmp (b,"et")==0)
    		{
    		printf("bravo") ;
                    }
    	else
            {
    		printf("perdu") ;
            }
    	}
    printf("\n qui est un génie ??? \n " ) ;
    scanf("%s" , b ) ;
    if(strcmp (b,"flo")==0 ) 
    	  {	 
    	  printf("bien , je suis tout a fait d'accor ac toi !!!\n je vois que tu es très intelligent \n") ;
    	  }
    	  else
    	  {
    	  printf("non , non tu te trompes c 'est flo le génie \n") ;
    	  }
    printf(" Que dit une blonde recevant une crotte d'oiseau sur la tête ? \n ")   ;
    scanf("%s" , b  ) ;
    if(strcmp(b,"Heureusement, les vaches ne volent pas " ) ==0 )
    	{
    	printf("c'est ca ") ;
    	}
    	else
    	{
    	printf(" Heureusement, les vaches ne volent pas") ;
            }
    }
     
    /* clock example: countdown */
     
    void wait ( int seconds )
    {
     
      clock_t endwait;
      endwait = clock () + seconds * CLK_TCK ;
      while (clock() < endwait) {}
    }
     
    int main ()
    {
      int n;
      printf ("que va t'il se passer dans 30 secondes ??? \n");
      for (n=30; n>0; n--)
      {
        printf ("%d\n",n);
        wait (1);
      }
      printf ("et ben il se passe rien!!!\n");
      return 0;
    }
     
    void love (void) 
    {
     
     
     
    printf("quel est le prenom de ma nana \n ") ;
    scanf("%s",b ) ;
    if(strcmp(b , "lea")  == 0 )
    	{
    	printf("bien bien") ;
    	}
    	else
            {
            printf("non c 'est pas encore ca ") ;
    	}
     
    }
    merci !!!!

  2. #2
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Merci d'utiliser la balise Code...

    Et à première vue, c'est plus du C que du C++...

    Edit : tu dois avoir des messages d'erreur avec ton compilateur, non ?

  3. #3
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 370
    Points : 40 164
    Points
    40 164
    Par défaut
    c'est du C, je déplace dans le forum qui va bien

  4. #4
    Membre averti
    Avatar de joellel
    Profil pro
    Inscrit en
    Février 2003
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2003
    Messages : 234
    Points : 338
    Points
    338
    Par défaut
    Citation Envoyé par as-de-trefle
    : j'ai un probleme dans un de mes programmes ...
    Quel est le symptôme du problème?
    Erreur de compilation, d'exécution?
    Aide-nous un peu

  5. #5
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Citation Envoyé par joellel
    Quel est le symptôme du problème?
    Erreur de compilation, d'exécution?
    Aide-nous un peu
    Pour la compilation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    main.c:8: warning: return type of 'main' is not `int'
    main.c: In function `main':
    main.c:10: warning: ISO C90 forbids mixed declarations and code
    main.c:12: warning: unused variable `buf'
    main.c:13: warning: unused variable `lpti'
    main.c: At top level:
    main.c:60: error: conflicting types for 'main'
    main.c:8: error: previous definition of 'main' was here
    main.c: In function `love':
    main.c:78: error: `b' undeclared (first use in this function)
    main.c:78: error: (Each undeclared identifier is reported only once
    main.c:78: error: for each function it appears in.)
    Process terminated with status 1 (0 minutes, 3 seconds)
    Pourquoi ? Mauvaise lecture de ton cours de C (ou très mauvais cours à bruler de suite).

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 589
    Points
    41 589
    Par défaut
    Sans compter les multiples utilisations de scanf("%s") ---> Utilise fgets() à la place.

  7. #7
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut
    Moi ce qui me choque directement, c'est que tu as deux main() !!!

    A partir de là, le compilateur avec les bonnes options te sortira des erreurs, à toi de les corriger au fur et à mesure...

  8. #8
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Bon, j'ai grosso modo la même chose que gege :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    test.c:8: warning: return type of 'main' is not 'int'
    test.c: In function 'main':
    test.c:13: warning: unused variable 'lpti'
    test.c:12: warning: unused variable 'buf'
    test.c: At top level:
    test.c:52: warning: no previous prototype for 'wait'
    test.c: In function 'wait':
    test.c:55: error: 'CLK_TCK' undeclared (first use in this function)
    test.c:55: error: (Each undeclared identifier is reported only once
    test.c:55: error: for each function it appears in.)
    test.c: At top level:
    test.c:60: error: conflicting types for 'main'
    test.c:8: error: previous definition of 'main' was here
    test.c:73: warning: no previous prototype for 'love'
    test.c: In function 'love':
    test.c:78: error: 'b' undeclared (first use in this function)
    Bon, mes remarques :

    - Indentation affreuse
    - deux main, c'est impossible (par de surcharge possible en C qui plus est sur la fonction main.)
    - tu mélanges déclaration et instructions (ton premier printf n'est pas correct, sauf en C99 mais je doute que tu en sois conscient).
    - tu utilises scanf pour lire une chaine, il faut que tu utilises fgets, c'est plus sur et plus logique (car ta lecture n'a rien de formatée).
    - tu utilises des accents dans l'affichage de tes chaînes, ça n'est pas portable.
    - tu utilises des construction plutôt bizarres : for(a=0 ; a<1 ; a=1+a)
    - tu n'a semble t'il pas compris certaines choses en matière d'algo (regarde le while de ta fonction wait, je ne suis pas sur que tu ais saisie le mode de fonctionnement)

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 15
    Points : 4
    Points
    4
    Par défaut reponse de l'as de trefle
    Je vous remerci bien de m'avoir répondu aussi rapidement !!!
    Franchement vous avez bien joué !
    Pour commencer , cette année j'ai appris les fonctions "scanf" et "printf" en cour de M.P.I(mesure phisique informatique) .
    -Je ne savais pas que c 'est impossible de metre deux main !
    -Pourquoi mon premier printf est incorrect ??? ????
    -Je ne connait "fgets" , pourquoi la commande " fgets " est plus sur et plus logique que " scanf " ???
    -le " for(a=0 ; a<1 ; a=1+a) " ou le " for(a=0 ; a<1 ; a=++) " sont exactement pareil !!!! oû est le probleme ?
    -je ne connait pas encore tout sur la fonction " wait " tout comme la librairie <time.h> , j'ai fais en quelque sorte un "copier/coller" d'un site internet pris sur google .
    Expliquez moi ces fonctions svp !!!
    -ca sert a quoi l'algo(algorithme) pour un petit programme comme ca ???
    voila .
    merci mille fois encore de me repondre comme vous venez de le faire !!!
    a++++
    l'as de trefle

  10. #10
    Membre éprouvé Avatar de gnto
    Homme Profil pro
    Ingénieur système logiciel
    Inscrit en
    Janvier 2006
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur système logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 923
    Points : 1 210
    Points
    1 210
    Par défaut
    Citation Envoyé par as-de-trefle
    Je vous remerci bien de m'avoir répondu aussi rapidement !!!
    Franchement vous avez bien joué !
    Pour commencer , cette année j'ai appris les fonctions "scanf" et "printf" en cour de M.P.I(mesure phisique informatique) .
    -Je ne savais pas que c 'est impossible de metre deux main !
    -Pourquoi mon premier printf est incorrect ??? ????
    En C, je ne sais si c'est une histoire de norme ou de convention (j'ai pas encore lu la norme) les declarations de variables se font toujours au début de chaque fonctions puis aprés tu mets les instructions.A la différence du c++.

    Citation Envoyé par as-de-trefle
    -Je ne connait "fgets" , pourquoi la commande " fgets " est plus sur et plus logique que " scanf " ???
    fgets limite le nombre des caractères à copier, ce qui empeche tout débordement mémoire(overflow)
    Ex .
    char text[5];
    scanf("%s",&text);/*si tu entre plus de 4 caractères overflow*/
    fgets(stdin,4,test);/*fgets limite la copie à 4 caractères*/
    Citation Envoyé par as-de-trefle
    -le " for(a=0 ; a<1 ; a=1+a) " ou le " for(a=0 ; a<1 ; a=++) " sont exactement pareil !!!! oû est le probleme ?
    a=++ connais pas a+=1 et a++

  11. #11
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    -Je ne savais pas que c 'est impossible de metre deux main !
    Prend deux secondes de réflexions, et dis toi que la fonction main est le point d'entrée de ton programme, c'est là qu'il commence, si tu as deux main, comment le compilateur sait où commence ton programme. (au passage, le prototype de ton premier main est faux)

    -Pourquoi mon premier printf est incorrect ??? ????
    Parce que tu mélanges déclaration et utilisation de fonction, ce qui est interdit en C (sauf en C99)

    -Je ne connait "fgets" , pourquoi la commande " fgets " est plus sur et plus logique que " scanf " ???
    Plus sur parce qu'elle permet d'éviter les débordement de tampon. Plus logique puisque tu lis une chaine de caractère sans formatage. (scanf c'est pour scan formated, lecture formatée).

    -le " for(a=0 ; a<1 ; a=1+a) " ou le " for(a=0 ; a<1 ; a=++) " sont exactement pareil !!!! oû est le probleme ?
    Réflechis encore deux secondes de plus, déroule ta boucle et demande toi combien de fois elle s'éxécute.... (au passage, a=++ n'existe pas en C)

    -ca sert a quoi l'algo(algorithme) pour un petit programme comme ca ???
    voila .
    A comprendre ne serait-ce que l'utilisation des boucles.

    -je ne connait pas encore tout sur la fonction " wait " tout comme la librairie <time.h> , j'ai fais en quelque sorte un "copier/coller" d'un site internet pris sur google .
    Alors autant être clair dès le début, il n'y a pas de librairie en C, seulement des bibliothèques. <time.h> est un fichier d'en-tête.

  12. #12
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Bon alors effectivement les 2 mains c'est n'importe quoi donc déjà refait nous un programme sans erreur aussi grossière et on pourra se pencher sur tes problèmes.

    Enfin à première vue tes boucles for sont court circuitées :
    quand tu fait tourner mon bonhomme ca fait :
    i=0;
    i<1 donc on sort de la boucle

    Enfin selon moi l'utilisation du scanf est ici justifiée, mais encore faut il penser à fournir l'adresse des valeurs à saisir
    ET à placer le fflush(stdin); qui va bien juste avant, cette fonction servant à vider le buffer memoire (en effet l'inconvenient majeur du scanf est que quand tu valides, en appuyant sur entrée, et bien tu fournis des informations à scanner. Ainsi le prochain scan pensera que tu as appuyé sur entrée directement et ne validera aucune saisie .

    Je vais essayer de te faire le code ca sera plus explicite

  13. #13
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    #include <stdio.h>   
    #include <stdlib.h> 
    #include <string.h>
    #include <time.h>
     
    void love();
    void fin();
    void wait(int seconds);
     
    int main(int argc, char *argv[])
    {
        /* déclaration des variables */
        int a ;
        char b[99] ;
        int buf ;
        //unsigned int lpti ; // Sert à QUOI ?
     
        printf("qu'est ce qu'il y a entre ciel et terre ?\n") ;
        scanf( "%s" , b ) ;
     
        //for(a=0 ; a<1 ; a=1+a){ //completement useless
        if(strcmp (b,"et")==0) printf("bravo\n\n") ;
        else printf("perdu\n\n") ;
     
        printf("\nqui est un genie ??? \n " ) ; //surement pas toi ^^
        fflush(stdin); //vide le buffer memoire
        scanf("%s" , &b ) ;
        if(strcmp (b,"flo")==0 ) printf("bien , je suis tout a fait d'accord ac toi !!!\n je vois que tu es tres intelligent \n\n") ;
        else printf("non , non tu te trompes c 'est flo le genie \n\n") ;
     
        printf("Que dit une blonde recevant une crotte d'oiseau sur la tete ? \n ")   ;
        fflush(stdin);
        scanf("%s" , &b  ) ;
        if(strcmp(b,"Heureusement, les vaches ne volent pas" ) ==0 ) printf("c'est ca\n\n") ;
        else printf("Heureusement, les vaches ne volent pas\n\n") ;
     
        //appel des deux fonctions
        love();
        fin();
     
        system("pause");
        return(0);
    }
     
    /* clock example: countdown */
     
    void wait ( int seconds ){
      clock_t endwait;
      endwait = clock () + seconds * CLK_TCK ;
      while (clock() < endwait) {}
    }
     
    void fin(){
      int n;
      printf ("que va t'il se passer dans 30 secondes ??? \n");
      for (n=30; n>0; n--)
      {
        printf ("%d\n",n);
        wait (1);
      }
      printf ("et ben il se passe rien!!!\n");
    }
     
    void love () {
      char b[99] ;
      do{
        printf("quel est le prenom de ma nana ?\n ") ;
        fflush(stdin);
        scanf("%s",&b ) ;
        if(strcmp(b , "lea")  == 0 ) printf("bien bien") ;
        else printf("non c 'est pas encore ca \n") ;
      }while(strcmp(b , "lea")) ;
    }

  14. #14
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Citation Envoyé par skip78
    Bon alors effectivement les 2 mains c'est n'importe quoi donc déjà refait nous un programme sans erreur aussi grossière et on pourra se pencher sur tes problèmes.
    On se calme ...


    Enfin selon moi l'utilisation du scanf est ici justifiée, mais encore faut il penser à fournir l'adresse des valeurs à saisir
    Et bien perso, j'attend la justification ...

    Tu es sur de ça ? (regarde ce qu'est b dans le code original)

    ET à placer le fflush(stdin); qui va bien juste avant, cette fonction servant à vider le buffer memoire (en effet l'inconvenient majeur du scanf est que quand tu valides, en appuyant sur entrée, et bien tu fournis des informations à scanner. Ainsi le prochain scan pensera que tu as appuyé sur entrée directement et ne validera aucune saisie .
    C'est donc ça qui te conforte dans l'utilisation de scanf ? Je ne vois toujours pas pourquoi on utiliserai une fonction dangeureuse sans raison (qui en plus te rajoute du boulot), a part par masochisme ...

    Je vais essayer de te faire le code ca sera plus explicite
    Je forum n'est pas là pour poster du code source mais pour répondre à des problèmes, le fait que tu donnes un code n'aidera pas la personne, car si elle ne comprend pas ses erreurs, elle ne progressera pas.

    De plus, ici, ce n'est pas le concours à qui postera la solution (il y a d'autres sites pour cela), ça n'apporte rien...

    PS : j'ai horreur de ton style d'indentation. (K&R), perso pour une meilleure lisibilité, j'utilise l'indentation BSD. (mais ça ne reste qu'un avis)

  15. #15
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Citation Envoyé par skip78
    ET à placer le fflush(stdin)
    fflush() n'est defini en standard que sur les flux sortant (stdout, stderr, fichiers ouverts en mode "w"). Utiliser fflush() sur un flux entrant est une extension au standard, non portable.

  16. #16
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Code :
    scanf( "%s" ,& b ) ;


    Tu es sur de ça ? (regarde ce qu'est b dans le code original)
    En effet ici le & n'est pas utile puisque b est un pointeur sur tableau de caractères. Mais bon lors de l'utilisation du scanf il faut faire attention à ca c'est ce que je voulais souligner

    Après pour le gets je suis d'accord c'est plus pratique dans la plupart des saisies. Mais ce genre de questionnaire necessite parfois des scanf du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scanf("le nom de ma nana est %s !",nom);
    Bon et sinon pour mon indentation bah ecoutes si tu l'aimes pas c'est ballot que veut tu que je te dises Ca ressemble à quoi BSD ?
    C'est tout simplement de ce type ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int main(){
        int i;
        for(i=0;i<2;i++)
        {
            printf("est ce plus joli ? :P");
        }
        system("pause");
        return 0;
    }
    Je trouve juste que l'indentation (K&R c'est ca ?) que j'utilises est plus rapide et prends moins de place.

  17. #17
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Bon et sinon pour mon indentation bah ecoutes si tu l'aimes pas c'est ballot que veut tu que je te dises Ca ressemble à quoi BSD ?
    http://en.wikipedia.org/wiki/Indent_style

    Je trouve juste que l'indentation (K&R c'est ca ?) que j'utilises est plus rapide et prends moins de place.
    D'une part, tu n'es pas payé à la concision du code. et d'autre par, ça n'est pas plus rapide (en tout cas pas significativement). Ce qui compte, c'est la lisibilité du code, enfin bon, comme je te l'ai dis, ça ne reste qu'un avis, il faudrait l'avis d'autres personnes, si tu es content de ton indentation, garde la.

    Après pour le gets je suis d'accord c'est plus pratique dans la plupart des saisies. Mais ce genre de questionnaire necessite parfois des scanf du type :
    Est-ce ce qui a été fait dans le post original ? De plus as tu deja essayé ce scanf ? Ca n'est pas pratique, et devrait être limité à une saisie courte et sans ambiguité possible de réponse : lecture d'une fraction par exemple. Ici, tu ne m'as toujours pas convaincu de l'utilisation d'un scanf sur un fgets.

    Oublie ceci.

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2006
    Messages : 138
    Points : 124
    Points
    124
    Par défaut
    Citation Envoyé par skip78
    .

    Enfin à première vue tes boucles for sont court circuitées :
    quand tu fait tourner mon bonhomme ca fait :
    i=0;
    i<1 donc on sort de la boucle
    Tu en es sur ???

    Je pense qu'en réalité il pourra rentrer dans la boucle mais qu'une seule fois (en mettant en troisième argument i++ ou i=i+1)


    Enfin selon moi l'utilisation du scanf est ici justifiée, mais encore faut il penser à fournir l'adresse des valeurs à saisir
    ET à placer le fflush(stdin); qui va bien juste avant, cette fonction servant à vider le buffer memoire (en effet l'inconvenient majeur du scanf est que quand tu valides, en appuyant sur entrée, et bien tu fournis des informations à scanner. Ainsi le prochain scan pensera que tu as appuyé sur entrée directement et ne validera aucune saisie .
    L'utilisation serais très simple si on étais pas obligé d'appuyer sur entrée. Or quand on appuie sur entrée apres l'appui d'un caractère le deuxième scanf récupèrera obligatoirement la touche entrée . Donc ce que tu dis est faux "le prochain scanf pensera que tu as appuyé sur entrée directement) il prendra simplement la pression de la touche entrée réalisé en vue du scanf précédent


    Je vais essayer de te faire le code ca sera plus explicite

  19. #19
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 15
    Points : 4
    Points
    4
    Par défaut as-de-trefle
    oui c 'est vrai , je suis allé trop vite dans mon dernier message , j'ai écris " le " for(a=0 ; a<1 ; a=++) " " , c 'est completement faux vous avez raison , j'aurais du écrire for(a=0;a<1;a++) comme la dis gnto et skip78 .

    merci skip78 de m'avoir tout corriger mais je pense qu'il serait preferable que tu m'expliques ce que tu as écris et la commande "do" ? elle sert a quoi là ???
    J'utilise Borland C++ et ta correction du programme ne marche pas , Borland C++ me dis 1erreur , 1 warning ::: linker warning :no module definition file specified : using defaults ; linker error :Undefined symbol
    _system in module SKIP78.CPP

    voila , et merci aussi a toi PRomu@ld pour les conseil que tu as donnés

    l'as de trefle

  20. #20
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par fveysseire
    L'utilisation serais très simple si on étais pas obligé d'appuyer sur entrée. Or quand on appuie sur entrée apres l'appui d'un caractère le deuxième scanf récupèrera obligatoirement la touche entrée . Donc ce que tu dis est faux "le prochain scanf pensera que tu as appuyé sur entrée directement) il prendra simplement la pression de la touche entrée réalisé en vue du scanf précédent

    C'est bel et bien ce que je voulais dire ...
    Bref ca n'à aucun interet de continuer là dessus.

    Sinon pour l'indentation bah en effet c'est une question de poin de vue.
    Mais on peut pas dire que la diference soit enorme entre

    et


Discussions similaires

  1. Probleme récupération des erreurs
    Par BILLANT dans le forum VBScript
    Réponses: 0
    Dernier message: 28/01/2009, 19h15
  2. Réponses: 3
    Dernier message: 19/09/2007, 18h11
  3. [cvBlobsLib]Probleme à l'execution avec des erreurs LNK2019
    Par Jim_Nastiq dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 01/03/2007, 15h40
  4. Réponses: 2
    Dernier message: 06/07/2006, 09h22
  5. [Struts Validator] probleme affichage des erreurs
    Par Morpheus2144 dans le forum Struts 1
    Réponses: 7
    Dernier message: 24/01/2006, 16h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo