La je suis deprimé

azerty53 Messages postés 23 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 22 février 2006 - 21 févr. 2006 à 21:35
azerty53 Messages postés 23 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 22 février 2006 - 22 févr. 2006 à 20:01
J'ai posé un message hier ou on m'a tres bien repondu (d'ailleur je vous en remercie) mais la j'ai un autre probleme snif

il veut pas compiler et dev cpp ne me met pas d'erreurs explicites donc si je peux envoyer mon projet a une personne pour qu'elle m'aide car la je ne voit pas comment expliquer

multiple definition of `ajout_voiture'
first defined here
[Linker error] undefined reference to `modif'
ld returned 1 exit status
Projet C\projet Garage svg\Makefile.win [Build Error] [Projet1.exe] Error 1

Cordialement azerty53

8 réponses

wxccxw Messages postés 755 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 30 janvier 2011
21 févr. 2006 à 22:16
je regarde ton ancien post pour regarde ton code et je te repond
wxccxw Messages postés 755 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 30 janvier 2011
21 févr. 2006 à 22:20
enfait, je pense que tu a copier sans faire expres ajout_voiture, dans ton ajout.h
envoi le code, je corrige
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
21 févr. 2006 à 22:44
A tu une autre definition de ajoute_voiture dans ton code? Si oui assure toi qu'il est bien écrit. Par exemple

int Ajoute_Voiture(LPSTR Nom, int X, int Y); /* N'oublie pas le ; et ne met pas d'accolade */
katsankat Messages postés 571 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 juillet 2012 3
22 févr. 2006 à 06:57
Bonjour :)

Cliques sur l' erreur, elle te mènera là où tu as déclaré deux fois la même fonction.

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
22 févr. 2006 à 10:46
Si tu te sert des classes et que tu as besoin d'utiliser plusieurs fonction portant le meme nom, utilise la surcharge de fonction.

Shell
azerty53 Messages postés 23 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 22 février 2006
22 févr. 2006 à 11:06
Bonjour

voila le ajouter.c

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include "ajouter.h"

int ajout_voiture(voiture tab[], int *nb)
{


int verif=0,verifan=0,verifan2=0;
int categorie;
int nbportes;
bool test;

system("cls");
puts(" +===============================================================+");
puts(" | |");
puts(" | M E N U A J O U T E R |");
puts(" | |");
//attribue au vehicule un numero
printf(" | Ceci est le vehicule numero %d,*nb |");
puts(" +===============================================================+");
tab[*nb].rang=*nb;

do
{
test=1;
printf(" | Constructeur: | ");
fflush(stdin);
gets(tab[*nb].constructeur);
}while(test==0);

do
{
test=1;
printf(" | Modele: | ");
fflush(stdin);
gets(tab[*nb].modele);
}while(test==0);
// Selection de la categorie du vehicule
do
{
test=1;
system("cls");
puts(" +===============================================================+");
puts(" | |");
puts(" | C A T E G O R I E D U V E H I C U L E |");
puts(" | |");
puts(" +===============================================================+");
puts(" | |");
puts(" | 1 - Compacte |");
puts(" | |");
puts(" | 2 - Coupe - Cabriolet |");
puts(" | |");
puts(" | 3 - Break |");
puts(" | |");
puts(" | 4 - Monospace |");
puts(" | |");
puts(" | 5 - Berline |");
puts(" | |");
puts(" | 6 - Utilitaire |");
puts(" | |");
puts(" | 7 - Vehicule Societe |");
puts(" | |");
puts(" +===============================================================+");
printf(" Categorie du vehicule : ");
fflush(stdin);
// Le getch permet de ne pas avoir a appuyer sur la touche entree
categorie = getch();
switch(categorie)
{
case '1':
strcpy(tab[*nb].categorie, "Compacte");
break;
case '2':
strcpy(tab[*nb].categorie, "Coupe - Cabriolet");
break;
case '3':
strcpy(tab[*nb].categorie, "Break");
break;
case '4':
strcpy(tab[*nb].categorie, "Monospace");
break;
case '5':
strcpy(tab[*nb].categorie, "Berline");
break;
case '6':
strcpy(tab[*nb].categorie, "Utilitaire");
break;
case '7':
strcpy(tab[*nb].categorie, "Vehicule Societe");
break;
default :
printf("Choix Incorrect !!\n\n");
test=0;
system("pause");
break;
}
}

while(test==0);
// Selection dans un menu du nombre de portes du vehicule
do
{
test=1;
system("cls");
puts(" +===============================================================+");
puts(" | |");
puts(" | N O M B R E D E P O R T E S |");
puts(" | |");
puts(" +===============================================================+");
puts(" | |");
puts(" | 1 - 3 portes |");
puts(" | |");
puts(" | 2 - 5 portes |");
puts(" | |");
puts(" +===============================================================+");
printf(" Nombre de portes >> ");
fflush(stdin);
nbportes = getch();
switch(nbportes)
{
case '1':
strcpy(tab[*nb].nbportes, "3 Portes");
break;
case '2':
strcpy(tab[*nb].nbportes, "5 Portes");
break;
default :
printf("Choix non-valide !!\n\n");
test=0;
system("pause");
break;
}
}
while(test==0);
//nationalite du constructeur
printf(" | Nationalite: | ");
fflush(stdin);
gets(tab[*nb].nationalite);

//validité de la date de sortie du vehicule
do
{
printf(" | Annee: | ");
fflush(stdin);
scanf("%d",&tab[*nb].annee);
verifan=tab[*nb].annee;
verifan2=tab[*nb].annee;
if (verifan2>2050) printf(" Date non valide !\n");
if (verifan<1900) printf(" Date non valide !\n");
}while (verifan<1900 || verifan2>2050);

system("cls");
puts(" +===============================================================+");
puts(" | |");
puts(" | M E N U A J O U T E R |");
puts(" | |");
puts(" +===============================================================+");
puts(" ");
printf(" | Numero vehicule : %4d%\n", tab[*nb].rang);
printf(" | Constructeur : %s\n", tab[*nb].constructeur);
printf(" | Modele : %s\n", tab[*nb].modele);
printf(" | Nombre de Portes : %s\n", tab[*nb].nbportes);
printf(" | Categorie : %s\n", tab[*nb].categorie);
printf(" | Nationalite : %s\n", tab[*nb].nationalite);
printf(" | Annee : %d\n", tab[*nb].annee);
puts(" +_______________________________________________________________+");


system("pause");
(*nb++);

}

voila le ajouter.h

#ifndef ajouter_H
#define ajouter_H
#include "main.h"

int ajout_voiture(voiture tab[], int *nb);

#endif

Cordialement
wxccxw Messages postés 755 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 30 janvier 2011
22 févr. 2006 à 11:57
et main.h ? est-ce que, ajouter.c est le fichier principale ?
azerty53 Messages postés 23 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 22 février 2006
22 févr. 2006 à 20:01
Non le ajouter.c n'est pas le fichier principal

donc voici le main.h

#ifndef MAIN_H
#define MAIN_H

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 64
#define MAXCHAR 128

typedef struct s_voiture
{
int rang;
char modele[MAXCHAR];
char categorie[MAXCHAR];
char nbportes [MAXCHAR];
char constructeur[MAXCHAR];
int annee;
char nationalite[MAXCHAR];
}voiture;

#endif

le main.c est le fichier principal
Rejoignez-nous