Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1196 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  undefined reference to (code block)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

undefined reference to (code block)

n°2234787
mrexalight
Posté le 02-08-2014 à 18:04:41  profilanswer
 

Bonjour,
j'ai un projet que je fait pendant mes vacances pour m'amuser et apprendre des choses en même temps mais je me heurte à un problème de compilation :(
Quelqu'un aurait il une idée sur l'origine de cette erreur et si oui comment la résoudre :) merci :)
 
Voila mon erreur de compilation :  
http://img15.hostingpics.net/pics/936477Sanstitre.png
 
headerprojet.h

Code :
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4. struct position{
  5.     float longitude,latitude;
  6. };
  7. struct ville{
  8.     string nom_ville;
  9.     int departement;
  10.     position position_ville;
  11. };
  12. struct distanse{
  13.     int Km;
  14.     int m;
  15. };
  16. position initialisation_position(float l, float L);
  17. ville initialisation_ville(string nom , int dept , position p1);
  18. bool test_existence_ville(string nom_fichier , string nom);
  19. void enregistrement_ville(string nom_fichier , ville city);
  20. ville lecture_ville(string nom_fichier);
  21. distanse ecart_ville(ville a, ville b);


 
projet.cpp

Code :
  1. #include "headerprojet.h"
  2. position initialisation_position(float l, float L){
  3.     position p1;
  4.     p1.logitude=l;
  5.     p1.latitude=L;
  6.     return p1;
  7. }
  8. ville initialisation_ville(string nom , int dept , position p1){
  9.     ville v1;
  10.     v1.nom_ville=nom;
  11.     v1.departement=dept;
  12.     v1.position_ville=p1;
  13.     return v1;
  14. }
  15. bool test_existence_ville(string nom_fichier , string nom){
  16.     FILE *f;
  17.     ville v;
  18.     int p;
  19.     f=fopen(nom_fichier,"rb" );
  20.     fseek(f,0,SEEK_SET);
  21.     p=fread(&v,sizeof(v),1,f);
  22.     while(p!=0 && v.nom_ville!=nom){
  23.         p=fread(&v,sizeof(v),1,f);
  24.     }
  25.     if(p==0 || v.nom_ville==nom){
  26.         return 1;
  27.     }
  28.     else{
  29.         return 0;
  30.     }
  31. }
  32. void enregistrement_ville(string nom_fichier , ville city){
  33.     FILE *f;
  34.     f=fopen(nom_fichier,"ab" );
  35.     fwrite(&city,sizeof(city),1,f);
  36.     fclose(f);
  37. }


 
main.cpp

Code :
  1. #include "headerprojet.h"
  2. int main()
  3. {
  4.     string nom_fichiers;
  5.     string noms;
  6.     bool test_ville=0;
  7.     int dept;
  8.     position p1;
  9.     ville v;
  10.     cout<<"veuillez entrer un nom de fichier"<<endl;
  11.     cin>>nom_fichiers;
  12.     cout<<nom_fichiers<<endl;
  13.     cout<<"veuillez saisir le nom d'un ville à ajouter "<<endl;
  14.     cin>>noms;
  15.     cout<<"veuillez saisir le departement"<<endl;
  16.     cin>>dept;
  17.     cout<<"veuillez saisir la longitude et latitude de la ville "<<endl;
  18.     cin>>p1.longitude>>p1.latitude;
  19.     test_ville=test_existence_ville(nom_fichiers , noms);
  20.     if(!test_ville){
  21.     //    v=initialisation_ville(noms , dept , p1);
  22.     //    enregistrement_ville(nom_fichiers , v);
  23.     }
  24.     else{
  25.         cout<<"La ville existe déja"<<endl;
  26.     }
  27. }

mood
Publicité
Posté le 02-08-2014 à 18:04:41  profilanswer
 

n°2234814
olivthill
Posté le 03-08-2014 à 19:54:10  profilanswer
 

Personne ne répond ? Tout les amateurs de C++ seraient-ils partis en vacances sans connexion à HFR ?
 
Bon, je vais me dévouer alors, et dire que c'est du n'importe quoi, ou presque.
 
Notamment,  

Citation :

bool test_existence_ville(string nom_fichier , string nom){
...
    f=fopen(nom_fichier,"rb" );


Sauf erreur, fopen() est du C, pas du C++. On peut l'utiliser dans un code C++ si on le désire parce que le C++ est compatible avec le C. Mais il faut alors au moins respecter le typage des paramètres.
La fonction fopen() (et ses consoeurs, fread(), fwrite(), fprintf(), etc.) ne fonctionne pas avec des string, mais avec des char * (ou des void *), ce qui est très différent.
De plus, pour utiliser ces fonctions C de gestion de fichiers, il faut inclure stdio.h et stdlib.h.
 
Et je pense qu'il y a aussi d'autres erreurs, par exemple la ligne du main.
 
Bref, la compilation de projet.cpp doit donner beaucoup d'erreurs qu'il faut résoudre avant d'espérer que main.cpp puisse se compiler et se linker sans problème.

n°2234839
Tangrim
Des bisous et des nounours !
Posté le 04-08-2014 à 09:53:48  profilanswer
 

Pareil pour les structs, en C++ on préfère les classes (ça t'évitera des typedef).
(et un return à la fin de ton main)
 
Et pour ton erreur, dans project.cpp :

Code :
  1. bool test_existence_ville(string nom_fichier , string nom)


 
Si tu ne mets pas using namespace il te faut:

Code :
  1. bool test_existence_ville(std::string nom_fichier , std::string nom)


Message édité par Tangrim le 04-08-2014 à 10:21:02

---------------
Des Bisous et des nounours ! | Internet 2025 | Dungeon-Generator
n°2235060
chaosphere​2
Posté le 06-08-2014 à 13:11:32  profilanswer
 

Si ca ne compile pas, c'est parceque le compilateur a détecté une faute d'orthographe :
 

Code :
  1. 19.struct distanse{
  2. 20.
  3. 21.    int Km;
  4. 22.    int m;
  5. 23.
  6. 24.};


 
 :sarcastic:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  undefined reference to (code block)

 

Sujets relatifs
[RESOLU] [VBA] - EXCEL 2010 - Optimisation de codeTrouver le code BIC (swift) à partir d'un RIB ou IBAN
problème genérique en code VHDLgenerer code barre pour une liste d'articles sous excel
Code VBA pour exportation Données et tracer de graphiqueErreur code vhdl
macro code arduino[HTML/PHP]Construction de code d'un site web.
que pensez vous de cette extrait de code ?Vérificateur de code postal
Plus de sujets relatifs à : undefined reference to (code block)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR