Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Langage C (saisie de données sur fichier) [ Archives / Au secours ] (doggy59115)

samedi 2 avril 2005 à 14:49:13 | Langage C (saisie de données sur fichier)

doggy59115

Bonjour à tous ! Je bloque sur mon programme en langage C. Je suis novice !
Je dois créer un programme où l'on rentre : nom, prénom, ville, adresse, code postal, téléphone et anniversaire. Pour cela j'utilise une structure. Jusqu'à présent tout va bien ! Maintenant je dois contrôler la saisie afin d'éviter que la chaîne de caractère entrée dépasse de mon tableau. Pour cela j'ai utiliser :"scanf ("%4s", var1);
fflush (stdin);" Mais lorsque je depasse tout mes mots se mélange ! De plus en utilisant le scanf je suis bloquer pour rentrer une adresse , car une fois arrivé a l'espacement il fini la saisie :s . Et je dois rentrer tout cela dans un fichier. J'avais penser à la fonction "fgets" mais pas moyen de la comprendre. jai essayé beaucoup de choses comme "getche","gets"... Mais en vain.
Voici mon programme en C :


#include<stdio.h>
#include<stdlib.h>
#include<string.h>


struct personne     /* D‚claration de la structure personne */
   {
   char fnom[20];
   char pnom[20];
   int phone[10];
   char adresse[60];
   char ville[15];
   int code[5];
   int jour[2];
   int mois[2];
   int annee[4];
   };

struct personne list[200];     /* D‚claration du nombre de contact que contiendra le tableau */


main()
{

FILE*saisie;

/*D‚claration des variables*/
char pnom[20],fnom[20],phone[10],adresse[60],ville[15],code[5],jour[2],mois[2],annee[4];

int i,nbre;

clrscr();

saisie=fopen("resultat.dat","wt");

printf("Entrez le nombre de personnes : ");     /* Nombre de personnes … ajouter */
scanf("%d",&nbre);
printf("________________________________");
for(i=0;i<nbre;i++)
   {
   printf(" \n \n \nEntrez le nom : ");       /* Saisie des infos concernant la personne */
   scanf("%20s",list[i].fnom);
   fflush(stdin);
   printf("Entrez le pr‚nom : ");
   scanf("%20s",list[i].pnom);
   fflush(stdin);
   printf("Entrez le num‚ro de t‚l‚phone (xxxxxxxx) : ");
   scanf("%10s",list[i].phone);
   fflush(stdin);
   printf("Entrez l'adresse : ");
   scanf("%60s",list[i].adresse);
   fflush(stdin);
   printf("Entrez la ville : ");
   scanf("%15s",list[i].ville);
   fflush(stdin);
   printf("Puis le code postal : ");
   scanf("%5s",list[i].code);
   fflush(stdin);
   printf("Vous allez entrer la date de naissance (xx/xx/xxxx)\n");
   printf("Entrez le jour de la date de naissance : ");
   scanf("%2s",list[i].jour);
   fflush(stdin);
   printf("Entrez le mois de la date de naissance : ");
   scanf("%2s",list[i].mois);
   fflush(stdin);
   printf("Entrez l'ann‚e de la date de naissance : ");
   scanf("%4s",list[i].annee);
   fflush(stdin);
   }

/* Affichage des infos concernant la personne */
for(i=0;i<nbre;i++)
 {
 fprintf(saisie,"\n \nContact           : %s %s\n",list[i].pnom,list[i].fnom);
 fprintf(saisie,"T‚l‚phone         : %s\n",list[i].phone);
 fprintf(saisie,"Adresse           : %s %s %s\n",list[i].adresse,list[i].ville,list[i].code);
 fprintf(saisie,"Date de naissance : %s/%s/%s \n",list[i].jour,list[i].mois,list[i].annee);
 }
fclose(saisie);
}

Merci d'avance à tous !


samedi 2 avril 2005 à 16:17:39 | Re : Langage C (saisie de données sur fichier)

minet03

Moi aussi j'ai eu des problèmes avec scanf(). Alors j'ai décidé de faire mes propores fonctions de saisie. Si tu les veux elles sont là :
http://www.cppfrance.com/code.aspx?ID=26131

Le CyberMonde nous offre une meilleur qualité de vie
CyberMan.inc The WebSite

samedi 2 avril 2005 à 19:16:01 | Re : Langage C (saisie de données sur fichier)

Minash

Avec fgets:
    scanf("%20s",list[i].fnom);

donnerait:
    fgets (list[i].nom,20,stdin);

Le premier paramètre est l'adresse où l'ont va stocker la chaîne, le deuxième paramètre le nombre de caractères acceptés et le dernier paramètre c'est là où provient la chaîne (ici le clavier donc stdin).


_________________________________________________________________________
"La programmation est un art"
                                         Minash



Cette discussion est classé dans : printf, saisie, scanf, list, fflush


Répondre à ce message

Sujets en rapport avec ce message

probleme en listes chainées. [ par ryuzaki ] slt t le monde je suis un débutant en programmation, j"ai un problème d'accomplir mon mini projet en langage c.je veux justement supprimer le premier ecriture dans un fichier [ par cacoucatatonique ] bonjours,je me suis mis au laanguage C parcequ'a l'ecole j'ai un cours dessus, et je butte sur une erreur inconue.En faite mon probleme vien du fait q Probleme Char [ par romainbisson ] Bonjour,j'ai crée des char qui recupere des valeurs tapé par l'utilisateur :    char nom[5000];    char prenom[5000];    char adresse[5000];    char c Un peut d'aide pour mon projet [ par asiana ] Bonjour a toute et a tous Voila j'ai un petit problème avec un programme qui permet de géré une vente aux encheres des poissons avec "le switch  case" scanf d'une structure imbriqée [ par sdiri_med ] Bonsoir, j'ai rencontré beaucoup des problèmes avec les structures je voudrai vous demander comment faire un appel d'une structure dans une autre pou tri d'un tableau de struct [ par sdiri_med ] Salut à tous j'ai un petit problème de tri d'un tableau de structurede but d'extraire l'employer le plus âgé Pouvez-vous m'aider s.v.p a résoudre se migration d une base mysql vers postgres en c : erreur de segmentation [ par loenia ] Bonjourje suis actuellement en stage en entreprise. et je dois effectuer la migration d'une base Mysql vers une base postgres.il se trouve qu au milie erreur boucle [ par pat65300 ] voici mon programme quand je veux ajouter une voiture je peut l ajouter il me marque ajout effectuer mais quand il revient sur le menu il tourne en bo Problème d'affichage [ par kiceron ] Salut je travail sur un dossier de fin d'année et j'ai queles problème d'affichage lorsque j'appelle ma fonction, en fait il s'agit de l'affichage de Reprendre la main sur une erreur de SCANF [ par gollum ] voila : mon monceau de codec='n';printf("Entrer le coeff %d du terme %d \n",i,i);result = scanf("%f",&coef); while (result==0 && c=='n'){ printf("f


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,593 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.