Tom's Guide > Forum > Programmation > [Langage C]Erreur, enfin ... y'a pas d'erreur !

[Langage C]Erreur, enfin ... y'a pas d'erreur !

Forum Programmation : [Langage C]Erreur, enfin ... y'a pas d'erreur !

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour à tous,

J'avais une application test qui fonctionnait très bien depuis un an.

C'est une vidéothèque qui insérait tout simplement un réalisateur puis lui attribue des films. C'est le seul projet en langage C que j'ai réalisé.

Enfin seul, non ... j'en réalise un en ce moment, et j'ai décidé également d'integrer mon ancien projet dans le nouveau ...

Cependant, j'ai fais quelques modifs directement dans le script de la premiere application, pour qu'à chaque fois que l'on saisit un réalisateur, on nous demande si on veut saisir directement les films ou pas de ce réalisateur ( alors qu'autrefois on saisissait une série de réalisateur, puis on fait une recherche d'un réalisateur et on lui saisie autant de films que l'on lui souhaite ... )

Pour les fanatiques du langages C, voici un code partiel de l'ancienne application*

Spoiler :

realisateur AddRealisateur(realisateur tmp)
{
realisateur cour;
char test;
do
{
cour=malloc(sizeof(*cour));
printf("\nEntrez un nom de realisateur : " );
scanf("%s",cour->real);
cour->realisateurNext=tmp;
cour->filmNext=NULL;
tmp=cour;
do{
cour->filmNext=NULL;
tmp=cour;
return(tmp);
} while(strcmp(tmp->real,"0" ));

}

void AddFilm(realisateur pp)
{ char nomf[20]; film courf;
printf("A quel realisateur voulez-vous ajouter un film ?\n" );
scanf("%s", nomf);
while(strcmp(pp->real,nomf))
{
pp=pp->realisateurNext;
do {courf=malloc(sizeof(*courf));
printf("\nEntrez un titre de film : " );
scanf("%s",courf->titre);
courf->filmNext=pp->filmNext;
pp->filmNext=courf;} while(strcmp((pp->filmNext)->titre,"0" ));};
}



Et maintenant la nouvelle version, celle qui ne marche pas bien évidemment ...

[spoiler]realisateur AddRealisateur(realisateur tmp)
{
realisateur cour;
char test;
do
{
cour=malloc(sizeof(*cour));
printf("\nEntrez un nom de realisateur : " );
scanf("%s",cour->real);
cour->realisateurNext=tmp;
cour->filmNext=NULL;
tmp=cour;
printf("Voulez vous saisir un film pour ce réalisateur ? O-N \n" );
do{
scanf("%c", &test);
if ((test == 'o') || (test == 'O'))
{
cour->filmNext=NULL;
tmp=cour;

Addmovieviareal(cour);
return(tmp);

}
else
{
cour->filmNext=NULL;
tmp=cour;
return(tmp);
}}while((test != 'o') || (test != 'O') || (test != 'N') || (test != 'n'));
} while(strcmp(tmp->real,"0" ));

}

void Addmovieviareal(realisateur pp)
{ film courf;
do {courf=malloc(sizeof(*courf));
printf("\nEntrez un titre de film : " );
printf("\nSi vous souhaitez ne plus inserer de film pour ce réalisateur, veuille saisir le chiffre 0" );
scanf("%s",courf->titre);
courf->filmNext=pp->filmNext;
pp->filmNext=courf;} while(strcmp((pp->filmNext)->titre,"0" ));
}[/spoiler

Voila ... j'arrive pas à trouver l'erreur mais en tout cas, il ne veut pas me le compiler ...

Voici le message d'erreur ...

225 C:\Documents and Settings\XYZ\Mes documents\XCV\Projet C\liste.c conflicting types for 'Addmovieviareal' *
210 previous implicit declaration of 'Addmovieviareal' was here
[liste.o] Error 1

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Bon j'ai réussi à trouver l'erreur lol.
J'ai juste oublier de mettre le parametrage de fonction dans le fichier.h.

Par contre, il ne fonctionne plus aussi bien, et apparemment on dirait que ma boucle do ne fonctionne pas ...

Répondre à anubiiis

while((test != 'o') || (test != 'O') || (test != 'N') || (test != 'n'));
(La boucle s'arrête lorsque (test == 'o') && (test == 'O') && (test == 'N') & (test != 'n'))
Tu continues tant que test !='o' ou test !='O' (quelque soit la valeur de test, une des 2 conditions sera toujours vraie, donc c'est équivalent à while(1) :)

ça c'est mieux:
while((test != 'o') && (test != 'O') && (test != 'N') && (test != 'n'));

------------------------------ 6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Tom's Guide > Forum > Programmation > [Langage C]Erreur, enfin ... y'a pas d'erreur !
Aller à :

Il y a 2479 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens