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 :

fonction structure c


Sujet :

C

  1. #21
    Membre à l'essai
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    48
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 48
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par souviron34
    et si !!!! car pour les rad comme devcpp ou autre une extension .cpp est interprétée comme un fichier c++, et donc ça mets l'option c++ au compilateur....
    comment enregistrer le projet comme fichier .c dés le debut

  2. #22
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ça, ça dépend de ton environnement.
    • Sous Dev-C++, tu choisis "projet C" et hop, tes fichiers sont en .c par défaut.
    • Sous Visual, il faut spécifier l'extension .c dans la boite de dialogue "nouveau fichier" et en théorie, ça marche.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #23
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Citation Envoyé par souviron34
    et si !!!! car pour les rad comme devcpp ou autre une extension .cpp est interprétée comme un fichier c++, et donc ça mets l'option c++ au compilateur....
    Ce n'est pas une question de RAD ou pas (d'ailleurs, dev-cpp n'est pas un RAD, mais simplement un EDI). Tu as le même problème en ligne de commande si tu passes un fichier avec l'extension .cpp à gcc, c'est g++ qui sera alors utilisé.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  4. #24
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ce n'est pas exactement g++ qui sera utilisé à mon avis : Les options comme -lstdc++, qui sont implicites avec g++, ne le sont pas avec gcc -o executable source.cpp.

    Par contre, le compilateur utilisé sera cc1plus et non cc1, donc le fichier sera bien compilé en tant que C++.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #25
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par mujigka
    Ce n'est pas une question de RAD ou pas (d'ailleurs, dev-cpp n'est pas un RAD, mais simplement un EDI). Tu as le même problème en ligne de commande si tu passes un fichier avec l'extension .cpp à gcc, c'est g++ qui sera alors utilisé.

    Thierry
    exact, mais je n'avais pas corrigé, car visiblement le PO utilisait quelque chose comme ça.

    Mais c'est certain que c'est pareil....
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  6. #26
    Membre à l'essai
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    48
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 48
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Médinoc
    Ça, ça dépend de ton environnement.
    • Sous Dev-C++, tu choisis "projet C" et hop, tes fichiers sont en .c par défaut.
    • Sous Visual, il faut spécifier l'extension .c dans la boite de dialogue "nouveau fichier" et en théorie, ça marche.
    mais moi j'utilise borland c++ pas les deus autre. comment je resout ca avec cet environnement.

    encore merci

  7. #27
    Membre à l'essai
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    48
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 48
    Points : 19
    Points
    19
    Par défaut
    d'autre part j'ai un autre probleme un message d'erreur :
    < unsolved external 'trouver_capitales(geo*)' >
    je ne comprend pas porqoi cette erreur car la syntaxe de la fonction est juste,et cette erreur parvient lors de l'execution non lors de la compilation.

    j'utilise borland c++

    merci

  8. #28
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Perdu, elle n'a pas lieu lors de l'exécution mais lors de l'édition de liens.
    Ça veut dire que la fonction, toute déclarée qu'elle soit, n'est pas définie (du moins, le linker ne la trouve pas).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #29
    Membre à l'essai
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    48
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 48
    Points : 19
    Points
    19
    Par défaut
    mais la fonction est bien déclarer encore bien définie et ben car toute les autre fonction n'ont aucun problème pourtant la meme methode est utilisé.

  10. #30
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par k.cheker
    d'autre part j'ai un autre probleme un message d'erreur :
    < unsolved external 'trouver_capitales(geo*)' >
    Tu continues à compiler en C++ (il te donne un prototype complet dans le message d'erreur) et il ne trouve pas une fonction prenant un paramètre alors que tu nous a montré qu'une fonction de même nom sans paramètre.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  11. #31
    Membre à l'essai
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    48
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 48
    Points : 19
    Points
    19
    Par défaut
    bon je vais vous donner la fonction:

    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
    int Trouver_capitales(struct geo t[])
    {int i,j,w,compteur;
     char x[20],y[20],z[20];
     compteur=0;
      /*tri du tableau*/
    for ( i=0 ; i<nb_v ; i++ )
        for ( j=i+1 ; j<nb_v ; j++ )
          if ( strcmp ( t[i].pays , t[j].pays )==0 )
           { strcpy(x,t[j].pays);strcpy(y,t[j].ville);strcpy(z,t[j].continent);w=t[j].nhab;
             strcpy(t[j].pays,t[i+1].pays);strcpy(t[j].ville,t[i+1].ville);strcpy(t[j].continent,t[i+1].continent);t[j].nhab=t[i+1].nhab;
             strcpy(t[i+1].pays,x);strcpy(t[i+1].ville,y);strcpy(t[i+1].continent,z);t[i+1].nhab=w;
           }
    /* afficher la plus grande ville de chaque pays du continent africain */
      for ( i=0 ; i<nb_v ; i++ )
       { if ( strcmp(t[i].continent,"afrique")==0 )
          { for ( j=i+1 ; j<nb_v; j++ )
              { if (( strcmp (t[i].pays,t[j].pays)==0 )&&(t[i].nhab<t[j].nhab ))
                  { i=j;
                  }
                else
                  {i=j;
                   j=nb_v;
                   printf(" - %s ",t[i].ville );
                   compteur++;
                  }
               }
        }
       }
    return compteur;
    }
    la declaration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int trouver_capitales(struct geo t[]);
    l'appel de la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c=trouver_capitales(t);
    je pense que tout est bien ,je comprend pas pourqoi le message d'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    < unsolved external 'trouver_capitales(geo*)' >

  12. #32
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par k.cheker
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int Trouver_capitales(struct geo t[])
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    < unsolved external 'trouver_capitales(geo*)' >
    Normal, tu n'as pas défini de fonction nommée 'trouver_capitales'. Par contre, il y a une 'Trouver_capitales', mais c'est certainement une simple ressemblance, puisque le C est sensible à la casse...

    D'autre part, il semble que tu compiles en C++ au lieu de C... Ces langages étant différents, c'est évidemment une erreur. Vérifie tes réglages (C) et tes extensions (.c).
    Pas de Wi-Fi à la maison : CPL

  13. #33
    Membre à l'essai
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    48
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 48
    Points : 19
    Points
    19
    Par défaut
    merci pour l'aide c'est une faute d'innattention
    mais comment je puisse faire regler le compilateur en c je parvient pas.

  14. #34
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par k.cheker
    merci pour l'aide c'est une faute d'innattention
    mais comment je puisse faire regler le compilateur en c je parvient pas.
    C'est quel compilateur / IDE ?
    Pas de Wi-Fi à la maison : CPL

  15. #35
    Membre à l'essai
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    48
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 48
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    C'est quel compilateur / IDE ?
    j'utilise borland c++

  16. #36
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par k.cheker
    j'utilise borland c++
    Il suffit que l'extension soit .c au lieu de .cpp ou .C.
    Pas de Wi-Fi à la maison : CPL

  17. #37
    Membre à l'essai
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    48
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 48
    Points : 19
    Points
    19
    Par défaut
    et comment je sauvegarde le programme comme .c non .cpp

  18. #38
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par k.cheker
    et comment je sauvegarde le programme comme .c non .cpp
    boolaÿ detected...

    Pour chaque fichier source :
    - Save as...
    ou
    - Sauvegarder sous...

    Il faudra peut être modifier le projet... (retirer les .cpp et ajouter les .c...)
    Pas de Wi-Fi à la maison : CPL

  19. #39
    Membre à l'essai
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    48
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 48
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    boolaÿ detected...

    Pour chaque fichier source :
    - Save as...
    ou
    - Sauvegarder sous...

    Il faudra peut être modifier le projet... (retirer les .cpp et ajouter les .c...)
    merci emmanuel pour votre aide , je vais essayer ca.

  20. #40
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Alors en plus de tout ce qu'on a dit au dessus (ET QU'ON AVAIT DEJA DIT), ton code n'est pas lisible, et en plus plus que dangereux, et je ne pense pas qu'il fasse ce que tu veux...

    M'étonnes pas que ça bloque :

    Dans la fonction Trouver_capitales :

    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
    
    /* afficher la plus grande ville de chaque pays du continent africain */
      for ( i=0 ; i<nb_v ; i++ )
       { if ( strcmp(t[i].continent,"afrique")==0 )
          { for ( j=i+1 ; j<nb_v; j++ )
              { if (( strcmp (t[i].pays,t[j].pays)==0 )&&(t[i].nhab<t[j].nhab ))
                  { i=j; /* Ya mieux !!!*/
                  }
                else
                  {i=j;  /* Ya mieux !!!*/
                  j=nb_v;
                   printf(" - %s ",t[i].ville );
                   compteur++;
                  }
               }
    
            /* Pas de break donc tu vas refaire ça pour toutes les villes d'Afrique */
             /* Et en plus tu oublies la ville avec laquelle tu as démarré (tu démarres à j+1*/
        }
       }
    return compteur;
    }
    je pense que tout est bien ,je comprend pas pourqoi le message d'erreur
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

Discussions similaires

  1. Création de fonction - Structure d'une trame - vb 2008
    Par hunteshiva dans le forum VB.NET
    Réponses: 7
    Dernier message: 13/04/2010, 14h28
  2. désallocation mémoire - fonction - structure - tableau dynamique
    Par Flaherty Mc Coillean dans le forum Débuter
    Réponses: 2
    Dernier message: 25/11/2009, 17h42
  3. paramètres fonction structures pointeurs
    Par tom31 dans le forum Débuter
    Réponses: 2
    Dernier message: 12/01/2008, 18h22
  4. fonction, structure
    Par k.cheker dans le forum C
    Réponses: 12
    Dernier message: 25/03/2007, 06h35
  5. Fonction, structure, pointeurs et scanf
    Par exhortae dans le forum C
    Réponses: 13
    Dernier message: 27/02/2007, 17h31

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