Problème débutant
Fermé
Isendil
Messages postés
799
Date d'inscription
lundi 14 janvier 2008
Statut
Membre
Dernière intervention
5 mai 2013
-
1 nov. 2008 à 16:20
Isendil Messages postés 799 Date d'inscription lundi 14 janvier 2008 Statut Membre Dernière intervention 5 mai 2013 - 1 nov. 2008 à 22:28
Isendil Messages postés 799 Date d'inscription lundi 14 janvier 2008 Statut Membre Dernière intervention 5 mai 2013 - 1 nov. 2008 à 22:28
10 réponses
main.c :
#include <stdio.h>
#include <stdlib.h>
#include "main.h"
int main(int argc, char *argv[])
{
Personne joueur[5]; // On appelle la structure Personne
long nbJoueur = 5, s = 0; // On définit les variables
for(s = 0; s < nbJoueur; s++) // On lance la première boucle pour récolter des infos sur les joueurs
{
printf("\n\n***Joueur %ld***\n\n\n", s);
printf("Quel est votre nom ? ");
scanf("%s", joueur[s].nom);
printf("Quel est votre prenom ? ");
scanf("%s", joueur[s].prenom);
printf("Quel est votre age ? ");
scanf("%ld", &(joueur[s].age));
printf("Sexe : \n\n1. Masculin\n2. Feminin\n\n");
scanf("%i", &(joueur[s].sexe));
}
for(s = 0; s < nbJoueur; s++) // On lance la deuxième boucle pour afficher les informations récoltées
{
printf("***Infos joueur n°%ld\n", s);
printf("Nom : %s\n", joueur[s].nom);
printf("Prenom : %s\n", joueur[s].prenom);
printf("Age : %ld\n", joueur[s].age);
printf("Sexe : %s\n", choixSexe(joueur[s].sexe));
}
system("PAUSE");
return 0; // On arrête proprement
}
char* choixSexe(int sexe) // Fonction pour transformer le dernier scanf de la première boucle
{
if(sexe == 1)
{
return "homme";
}
else
{
return "femme";
}
}
main.h :
#include <stdio.h>
#include <stdlib.h>
typedef struct Personne Personne;
struct Personne
{
char nom[100];
char prenom[100];
long age;
int sexe;
};
char *choixSexe(int sexe);
#include <stdio.h>
#include <stdlib.h>
#include "main.h"
int main(int argc, char *argv[])
{
Personne joueur[5]; // On appelle la structure Personne
long nbJoueur = 5, s = 0; // On définit les variables
for(s = 0; s < nbJoueur; s++) // On lance la première boucle pour récolter des infos sur les joueurs
{
printf("\n\n***Joueur %ld***\n\n\n", s);
printf("Quel est votre nom ? ");
scanf("%s", joueur[s].nom);
printf("Quel est votre prenom ? ");
scanf("%s", joueur[s].prenom);
printf("Quel est votre age ? ");
scanf("%ld", &(joueur[s].age));
printf("Sexe : \n\n1. Masculin\n2. Feminin\n\n");
scanf("%i", &(joueur[s].sexe));
}
for(s = 0; s < nbJoueur; s++) // On lance la deuxième boucle pour afficher les informations récoltées
{
printf("***Infos joueur n°%ld\n", s);
printf("Nom : %s\n", joueur[s].nom);
printf("Prenom : %s\n", joueur[s].prenom);
printf("Age : %ld\n", joueur[s].age);
printf("Sexe : %s\n", choixSexe(joueur[s].sexe));
}
system("PAUSE");
return 0; // On arrête proprement
}
char* choixSexe(int sexe) // Fonction pour transformer le dernier scanf de la première boucle
{
if(sexe == 1)
{
return "homme";
}
else
{
return "femme";
}
}
main.h :
#include <stdio.h>
#include <stdlib.h>
typedef struct Personne Personne;
struct Personne
{
char nom[100];
char prenom[100];
long age;
int sexe;
};
char *choixSexe(int sexe);
Isendil
Messages postés
799
Date d'inscription
lundi 14 janvier 2008
Statut
Membre
Dernière intervention
5 mai 2013
22
1 nov. 2008 à 16:27
1 nov. 2008 à 16:27
Ca compile et lance la console normalement, puis ça crash d'un coup (avec "console.exe a rencontré un problème et doit fermer etc.).
Le debugger m'affiche ça quand je le lance :
Le debugger m'affiche ça quand je le lance :
#0 77C14995 wscanf() (C:\WINDOWS\system32\msvcrt.dll:??) #1 00000000 ??() (??:??)
Utilisateur anonyme
1 nov. 2008 à 16:28
1 nov. 2008 à 16:28
Il te manque surement cette DLL !
Télécharge la et place la dans System32
Télécharge la et place la dans System32
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Isendil
Messages postés
799
Date d'inscription
lundi 14 janvier 2008
Statut
Membre
Dernière intervention
5 mai 2013
22
1 nov. 2008 à 16:47
1 nov. 2008 à 16:47
Malheuresement non... J'ai déjà cette DLL et même en la re-téléchargeant ça ne change rien...
Isendil
Messages postés
799
Date d'inscription
lundi 14 janvier 2008
Statut
Membre
Dernière intervention
5 mai 2013
22
1 nov. 2008 à 20:12
1 nov. 2008 à 20:12
Petit up!
marwenha
Messages postés
127
Date d'inscription
mercredi 13 août 2008
Statut
Membre
Dernière intervention
11 juin 2014
12
1 nov. 2008 à 20:52
1 nov. 2008 à 20:52
bonjour,
je pense que
je pense que
"include "main.h"est auxiliaire vous devez le supprimer
Je sais que je suis sous Linux mais bon du c, c'est du c ...
1)lors de la compilation :
main.c: In function 'main':
main.c:17: warning: format '%ld' expects type 'long int *', but argument 2 has type 'long int'
main.c:19: warning: format '%ld' expects type 'long int *', but argument 2 has type 'int'
main.c:28: warning: format '%s' expects type 'char *', but argument 2 has type 'int'
main.c: In function 'choixSexe':
main.c:38: warning: return makes integer from pointer without a cast
main.c:42: warning: return makes integer from pointer without a cast
2)comparaison en C : ==
= : assignement
1)lors de la compilation :
main.c: In function 'main':
main.c:17: warning: format '%ld' expects type 'long int *', but argument 2 has type 'long int'
main.c:19: warning: format '%ld' expects type 'long int *', but argument 2 has type 'int'
main.c:28: warning: format '%s' expects type 'char *', but argument 2 has type 'int'
main.c: In function 'choixSexe':
main.c:38: warning: return makes integer from pointer without a cast
main.c:42: warning: return makes integer from pointer without a cast
2)comparaison en C : ==
= : assignement
Isendil
Messages postés
799
Date d'inscription
lundi 14 janvier 2008
Statut
Membre
Dernière intervention
5 mai 2013
22
1 nov. 2008 à 21:14
1 nov. 2008 à 21:14
@marwenha : même en incluant le contenu de main.h dans main.c, j'obtiens le même crash.
@Nobody : j'ai pas tout compris là... Le 1) c'est les erreurs trouvées durant la compile et le 2) c'est ce qu'il faut changer dans le code??
Sinon, merci à vous deux de m'aider ;)
@Nobody : j'ai pas tout compris là... Le 1) c'est les erreurs trouvées durant la compile et le 2) c'est ce qu'il faut changer dans le code??
Sinon, merci à vous deux de m'aider ;)
Isendil
Messages postés
799
Date d'inscription
lundi 14 janvier 2008
Statut
Membre
Dernière intervention
5 mai 2013
22
1 nov. 2008 à 22:28
1 nov. 2008 à 22:28
Merci beaucoup, apparement ça buggait au niveau des scanf pour l'age et le sexe!
Merci et @+
Merci et @+