Utilisation de chaines de caractères en C
Résolu
baedyl
Messages postés
9
Statut
Membre
-
baedyl Messages postés 9 Statut Membre -
baedyl Messages postés 9 Statut Membre -
Bonjour/Bonsoir à tous,
J'ai écrit un programme C qui utilise un enregistrement d'étudiant, j'ai un problème avec la lecture d'une chaine de caractères(Nom et prenom de l'etudiant), j'ai utilisé la fonction "gets".
S'il vous plait j'ai besoin d'une solution à ce problème,
Merci.
Voici le code:
#include<stdio.h>
#include<conio.h>
typedef struct
{
int Matricule;
char NP[50];
float Moyenne;
}Etudiant;
main(){
Etudiant E;
printf("Entrer le matricule de l'etudiant: ");
scanf("%d",&E.Matricule);
printf("Entrer le nom et le prenom de l'etudiant: ");
gets(E.NP);
printf("Entrer la moyenne de l'etudiant");
scanf("%f",&E.Moyenne);
puts("Les information sur l'etudiant sont:\n");
printf("Le matricule: %d\n",E.Matricule);
printf("Nom et Prenom: %d\n",E.NP);
printf("La moyenne: %2f",&E.Moyenne);
getch();
}
J'ai écrit un programme C qui utilise un enregistrement d'étudiant, j'ai un problème avec la lecture d'une chaine de caractères(Nom et prenom de l'etudiant), j'ai utilisé la fonction "gets".
S'il vous plait j'ai besoin d'une solution à ce problème,
Merci.
Voici le code:
#include<stdio.h>
#include<conio.h>
typedef struct
{
int Matricule;
char NP[50];
float Moyenne;
}Etudiant;
main(){
Etudiant E;
printf("Entrer le matricule de l'etudiant: ");
scanf("%d",&E.Matricule);
printf("Entrer le nom et le prenom de l'etudiant: ");
gets(E.NP);
printf("Entrer la moyenne de l'etudiant");
scanf("%f",&E.Moyenne);
puts("Les information sur l'etudiant sont:\n");
printf("Le matricule: %d\n",E.Matricule);
printf("Nom et Prenom: %d\n",E.NP);
printf("La moyenne: %2f",&E.Moyenne);
getch();
}
A voir également:
- Utilisation de chaines de caractères en C
- Utilisation chromecast - Guide
- Télécharger gratuitement notice d'utilisation - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Caractères spéciaux - Guide
- Ascii nombre de caractères - Guide
1 réponse
Bonjour,
Mes remarques sur le code :
#include<conio.h>
Non standard. A supprimer si possible.
main(){
Le bon prototype est : int main(void)
gets(E.NP);
gets() est obsolète. Utilise plutôt : fgets(E.NP, sizeof E.NP, stdin);
printf("Nom et Prenom: %d\n",E.NP);
E.NP est un tableau de char. Pour l'affiche, il faut donc utiliser %s (et non %d).
printf("La moyenne: %2f",&E.Moyenne);
Il ne faut pas mettre l'esperluette (&) devant la variable E.Moyenne.
getch();
Utilise plutôt getchar(); getchar(); (oui deux fois).
Ou sinon system("pause"); en rajoutant au début #include <stdlib.h>
Et il ne faut pas oublier : return 0; en fin de main().
Note : la prochaine fois, merci d'utiliser la balise "code" pour garder l'indentation.
Exemple :
<code c>ici tu mets ton code</code>
Mes remarques sur le code :
#include<conio.h>
Non standard. A supprimer si possible.
main(){
Le bon prototype est : int main(void)
gets(E.NP);
gets() est obsolète. Utilise plutôt : fgets(E.NP, sizeof E.NP, stdin);
printf("Nom et Prenom: %d\n",E.NP);
E.NP est un tableau de char. Pour l'affiche, il faut donc utiliser %s (et non %d).
printf("La moyenne: %2f",&E.Moyenne);
Il ne faut pas mettre l'esperluette (&) devant la variable E.Moyenne.
getch();
Utilise plutôt getchar(); getchar(); (oui deux fois).
Ou sinon system("pause"); en rajoutant au début #include <stdlib.h>
Et il ne faut pas oublier : return 0; en fin de main().
Note : la prochaine fois, merci d'utiliser la balise "code" pour garder l'indentation.
Exemple :
<code c>ici tu mets ton code</code>
mais jusque là je n'arrive toujours pas à lire la chaine de caractères.
N'oublie pas pour les balises.