Le programme ne fonctionne pas bien
Fermé
ABC123
-
Modifié le 20 sept. 2021 à 13:59
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 20 sept. 2021 à 13:55
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 20 sept. 2021 à 13:55
A voir également:
- Le programme ne fonctionne pas bien
- Programme demarrage windows 10 - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Désinstaller programme windows 10 - Guide
- Forcer la fermeture d'un programme - Guide
3 réponses
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
17 sept. 2021 à 10:41
17 sept. 2021 à 10:41
Bonjour,
et pourquoi il ne fonctionne pas bien ?
ca donne quoi ?
tu as un message d'erreur ?
sinon, pour plus de clarté il faut afficher ton code avec les balises
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Visuellement, ça doit ressembler à ceci (avec la coloration syntaxique) :
et pourquoi il ne fonctionne pas bien ?
ca donne quoi ?
tu as un message d'erreur ?
sinon, pour plus de clarté il faut afficher ton code avec les balises
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Visuellement, ça doit ressembler à ceci (avec la coloration syntaxique) :
#include <stdio.h> int main(){ printf("Hello World!"); return 0; }
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 096
Modifié le 17 sept. 2021 à 11:40
Modifié le 17 sept. 2021 à 11:40
Salut ABC123,
Poste ton code correctement, comme te l'indique Phil_1857.
Deux problèmes essentiellement, se retrouvent tout au long du code posté.
Un type comme
Pour stocker une chaîne de caractères il faut un espace de stockage suffisant pour y mettre des chars consécutifs constituant la chaîne y compris le
Les spécificateurs de
https://www.cplusplus.com/reference/cstdio/scanf/
Dal
Poste ton code correctement, comme te l'indique Phil_1857.
Deux problèmes essentiellement, se retrouvent tout au long du code posté.
Un type comme
char nom;ne permet de stocker qu'un seul char, pas une chaîne de caractères.
Pour stocker une chaîne de caractères il faut un espace de stockage suffisant pour y mettre des chars consécutifs constituant la chaîne y compris le
'\0'terminal. Par exemple un type
char nom[256];permet de stocker une chaîne de 255 char, plus le
'\0'terminal.
Les spécificateurs de
scanf()doivent correspondre aux types des emplacements mémoire où ils doivent être stockés. Là tu utilises systématiquement %s, qui est correct si tu récupères des chaînes de caractères s'arrêtant au première caractère blanc, mais c'est %d que tu dois utiliser pour récupérer un int.
https://www.cplusplus.com/reference/cstdio/scanf/
Dal
#include <stdio.h> #include <stdlib.h> typedef struct{ int jour; int mois; int annee; }Datenaissance; typedef struct{ char nom[12]; char prenom[12]; Datenaissance date; }Stagiaire; int main(int argc, char *argv[]) { Stagiaire s; printf("nom : "); scanf("%s",s.nom); printf("prenom : "); scanf("%s",s.prenom); printf("jour : "); scanf("%d",&s.date.jour); printf("mois : "); scanf("%s",&s.date.mois); printf("annee : "); scanf("%s",&s.date.annee); printf("Les informations du stagiaire : \n"); printf("Nom : %s\n Prenom : %s \n Date de naissance : %d/%d/%d ",s.nom,s.prenom,s.date.jour,s.date.mois,s.date.annee); return 0; }
Comme ça ?
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 096
>
ABC123
20 sept. 2021 à 13:55
20 sept. 2021 à 13:55
Les champs date et mois sont de type int. Le spécificateur de scanf() ne peut donc pas être %s