Chaine de caractére
Résolu/Fermé
sifane.a
Messages postés
16
Date d'inscription
jeudi 11 décembre 2008
Statut
Membre
Dernière intervention
12 décembre 2008
-
11 déc. 2008 à 19:43
sifane.a Messages postés 16 Date d'inscription jeudi 11 décembre 2008 Statut Membre Dernière intervention 12 décembre 2008 - 11 déc. 2008 à 21:26
sifane.a Messages postés 16 Date d'inscription jeudi 11 décembre 2008 Statut Membre Dernière intervention 12 décembre 2008 - 11 déc. 2008 à 21:26
A voir également:
- Chaine de caractére
- Caractère ascii - Guide
- Caractere speciaux - Guide
- Caractère spéciaux - Guide
- Chaine tnt gratuite sur mobile - Guide
- Plus de chaine tv - Guide
4 réponses
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
11 déc. 2008 à 19:48
11 déc. 2008 à 19:48
forcement le scanf s'arrete lorsqu'il rencontre un espace faut que tu utilise fgets si tu veux stocker des chaine avec des espace
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
11 déc. 2008 à 20:14
11 déc. 2008 à 20:14
bon je vois que tu as pas bien compris comment s'utilise fgets poste ton code je vais te donné un exemple
sifane.a
Messages postés
16
Date d'inscription
jeudi 11 décembre 2008
Statut
Membre
Dernière intervention
12 décembre 2008
11 déc. 2008 à 20:24
11 déc. 2008 à 20:24
#include<stdio.h>
#include<string.h>
#define etd 200
typedef struct dateNaissance DATE;
struct dateNaissance
{
int jour;
int mois;
int annee;
};
typedef struct lAdresse ADRESSE;
struct lAdresse
{
char maison[10];
char rue[10];
char quartier[40];
char ville[20];
char pays[20];
};
typedef struct etudiant E;
struct etudiant
{
char nom[15];
char prenom[15];
DATE date;
ADRESSE adresse;
};
main()
{
E tab[etd];
int i;
int n;
printf("donner le nombre des etudiants:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("nom:\n");
scanf("%s",&tab[i].nom);
printf("prenom:\n");
scanf("%s",&tab[i].prenom);
printf("jour naissance:\n");
scanf("%d",&tab[i].date.jour);
printf("mois:\n");
scanf("%d",&tab[i].date.mois);
printf("annee:\n");
scanf("%d",&tab[i].date.annee);
printf("l'adresse:\n");
printf("numero de la maison:\n");
scanf("%s",&tab[i].adresse.maison);
printf("la rue:\n");
scanf("%s",&tab[i].adresse.rue);
printf("le quartier:\n");
fgets("%s",&tab[i].adresse.quartier);
printf("la ville\n");
fgets("%s",&tab[i].adresse.ville);
printf("le pays\n");
fgets("%s",&tab[i].adresse.pays);
}
for(i=0;i<n;i++)
{
printf(" les information de %s\n",tab[i].nom);
printf("son nom:%s\n",tab[i].nom);
printf("son prenom:%s\n",tab[i].prenom);
printf("le jour de naissance:%d\n",tab[i].date.jour);
printf("le mois de naissance:%d\n",tab[i].date.mois);
printf("l'annee de naissance:%d\n",tab[i].date.annee);
printf("son domicile est:\n");
printf("n'%s,rue %s, %s, %s, %s\n",tab[i].adresse.maison,tab[i].adresse.rue,tab[i].adresse.quartier,tab[i].adresse.ville,tab[i].adresse.pays);
}
}
#include<string.h>
#define etd 200
typedef struct dateNaissance DATE;
struct dateNaissance
{
int jour;
int mois;
int annee;
};
typedef struct lAdresse ADRESSE;
struct lAdresse
{
char maison[10];
char rue[10];
char quartier[40];
char ville[20];
char pays[20];
};
typedef struct etudiant E;
struct etudiant
{
char nom[15];
char prenom[15];
DATE date;
ADRESSE adresse;
};
main()
{
E tab[etd];
int i;
int n;
printf("donner le nombre des etudiants:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("nom:\n");
scanf("%s",&tab[i].nom);
printf("prenom:\n");
scanf("%s",&tab[i].prenom);
printf("jour naissance:\n");
scanf("%d",&tab[i].date.jour);
printf("mois:\n");
scanf("%d",&tab[i].date.mois);
printf("annee:\n");
scanf("%d",&tab[i].date.annee);
printf("l'adresse:\n");
printf("numero de la maison:\n");
scanf("%s",&tab[i].adresse.maison);
printf("la rue:\n");
scanf("%s",&tab[i].adresse.rue);
printf("le quartier:\n");
fgets("%s",&tab[i].adresse.quartier);
printf("la ville\n");
fgets("%s",&tab[i].adresse.ville);
printf("le pays\n");
fgets("%s",&tab[i].adresse.pays);
}
for(i=0;i<n;i++)
{
printf(" les information de %s\n",tab[i].nom);
printf("son nom:%s\n",tab[i].nom);
printf("son prenom:%s\n",tab[i].prenom);
printf("le jour de naissance:%d\n",tab[i].date.jour);
printf("le mois de naissance:%d\n",tab[i].date.mois);
printf("l'annee de naissance:%d\n",tab[i].date.annee);
printf("son domicile est:\n");
printf("n'%s,rue %s, %s, %s, %s\n",tab[i].adresse.maison,tab[i].adresse.rue,tab[i].adresse.quartier,tab[i].adresse.ville,tab[i].adresse.pays);
}
}
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
11 déc. 2008 à 20:28
11 déc. 2008 à 20:28
le fgets prend pas les meme parametre que le scanf c'est pour ça que t'as des erreurs
voici comment tu doit faire par exemple pour le premier
voici comment tu doit faire par exemple pour le premier
fgets(tab[i].adresse.quartier,40,stdin);
sifane.a
Messages postés
16
Date d'inscription
jeudi 11 décembre 2008
Statut
Membre
Dernière intervention
12 décembre 2008
11 déc. 2008 à 21:03
11 déc. 2008 à 21:03
est ce ke tu a executé mon preogramme?
kand il arrive a "quartier",il la passe et me demande d'entrer la ville,voila mon nouveau code:
#include<stdio.h>
#include<string.h>
#define etd 200
typedef struct dateNaissance DATE;
struct dateNaissance
{
int jour;
int mois;
int annee;
};
typedef struct lAdresse ADRESSE;
struct lAdresse
{
char maison[10];
char rue[10];
char quartier[40];
char ville[20];
char pays[20];
};
typedef struct etudiant E;
struct etudiant
{
char nom[15];
char prenom[15];
DATE date;
ADRESSE adresse;
};
main()
{
E tab[etd];
int i;
int n;
printf("donner le nombre des etudiants:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("nom:\n");
scanf("%s",&tab[i].nom);
printf("prenom:\n");
scanf("%s",&tab[i].prenom);
printf("jour naissance:\n");
scanf("%d",&tab[i].date.jour);
printf("mois:\n");
scanf("%d",&tab[i].date.mois);
printf("annee:\n");
scanf("%d",&tab[i].date.annee);
printf("l'adresse:\n");
printf("numero de la maison:\n");
scanf("%s",&tab[i].adresse.maison);
printf("la rue:\n");
scanf("%s",&tab[i].adresse.rue);
printf("le quartier:\n");
fgets(tab[i].adresse.quartier,40,stdin);
printf("la ville\n");
fgets(tab[i].adresse.ville,20,stdin);
printf("le pays\n");
fgets(tab[i].adresse.pays,20,stdin);
}
for(i=0;i<n;i++)
{
printf(" les information de %s\n",tab[i].nom);
printf("son nom:%s\n",tab[i].nom);
printf("son prenom:%s\n",tab[i].prenom);
printf("le jour de naissance:%d\n",tab[i].date.jour);
printf("le mois de naissance:%d\n",tab[i].date.mois);
printf("l'annee de naissance:%d\n",tab[i].date.annee);
printf("son domicile est:\n");
printf("n'%s,rue %s, %s, %s, %s\n",tab[i].adresse.maison,tab[i].adresse.rue,tab[i].adresse.quartier,tab[i].adresse.ville,tab[i].adresse.pays);
}
}
kand il arrive a "quartier",il la passe et me demande d'entrer la ville,voila mon nouveau code:
#include<stdio.h>
#include<string.h>
#define etd 200
typedef struct dateNaissance DATE;
struct dateNaissance
{
int jour;
int mois;
int annee;
};
typedef struct lAdresse ADRESSE;
struct lAdresse
{
char maison[10];
char rue[10];
char quartier[40];
char ville[20];
char pays[20];
};
typedef struct etudiant E;
struct etudiant
{
char nom[15];
char prenom[15];
DATE date;
ADRESSE adresse;
};
main()
{
E tab[etd];
int i;
int n;
printf("donner le nombre des etudiants:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("nom:\n");
scanf("%s",&tab[i].nom);
printf("prenom:\n");
scanf("%s",&tab[i].prenom);
printf("jour naissance:\n");
scanf("%d",&tab[i].date.jour);
printf("mois:\n");
scanf("%d",&tab[i].date.mois);
printf("annee:\n");
scanf("%d",&tab[i].date.annee);
printf("l'adresse:\n");
printf("numero de la maison:\n");
scanf("%s",&tab[i].adresse.maison);
printf("la rue:\n");
scanf("%s",&tab[i].adresse.rue);
printf("le quartier:\n");
fgets(tab[i].adresse.quartier,40,stdin);
printf("la ville\n");
fgets(tab[i].adresse.ville,20,stdin);
printf("le pays\n");
fgets(tab[i].adresse.pays,20,stdin);
}
for(i=0;i<n;i++)
{
printf(" les information de %s\n",tab[i].nom);
printf("son nom:%s\n",tab[i].nom);
printf("son prenom:%s\n",tab[i].prenom);
printf("le jour de naissance:%d\n",tab[i].date.jour);
printf("le mois de naissance:%d\n",tab[i].date.mois);
printf("l'annee de naissance:%d\n",tab[i].date.annee);
printf("son domicile est:\n");
printf("n'%s,rue %s, %s, %s, %s\n",tab[i].adresse.maison,tab[i].adresse.rue,tab[i].adresse.quartier,tab[i].adresse.ville,tab[i].adresse.pays);
}
}
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
11 déc. 2008 à 21:19
11 déc. 2008 à 21:19
non j'ai pas testé il te faut vider le buffer
rajoute
rajoute
fgetc(stdin);avant
printf("le quartier:\n");
sifane.a
Messages postés
16
Date d'inscription
jeudi 11 décembre 2008
Statut
Membre
Dernière intervention
12 décembre 2008
11 déc. 2008 à 21:26
11 déc. 2008 à 21:26
merci "myp" le programme tourne a merveille :).
11 déc. 2008 à 19:54
11 déc. 2008 à 20:01
regarde le prototype
http://www.linux-kheops.com/doc/man/manfr/man-ascii-0.9/man3/fgets.3.txt.html
11 déc. 2008 à 20:12
jé remplacé scanf par fgets et ca a fouaré ,je crois ke stdio.h ne la reconé po