URL: https://linuxfr.org/forums/programmation-c--2/posts/un-petit-probleme-avec-mon-programme-c Title: Un petit problème avec mon programme C Authors: roger91 Date: 2015年12月04日T19:07:33+01:00 License: CC By-SA Tags: Score: 0 Bonjour, Je rencontre un souci avec mon programme. Il s'agit d'un programme qui doit lire une suite d'adresses contenu dans un fichier. Le fichier doit contenir par exemple: 5 rue Paul Froment Paris 75001 10 rue Paul Valery Lyon 65000 2 allée Pierre Gaspard Toulouse 75001 Toutes ces adresses sont enregistrées dans le fichier de manière verticale sur une seule colonne de façon à faciliter le programme pour leur lecture. Voici mon programme: #include #include #include typedef struct adresse Adresse; struct adresse {char *num; char *voie; char *nomVoie; char *ville; char *codPostale;}; int main(void) { int n = 0; int i; struct adresse *Adresse = NULL; FILE *f = fopen("/home/fichier.txt","r"); if (!f) { printf("Impossible d'ouvrir le fichier\n"); return 1; } char ligne[256]; while (fgets(ligne,256,f)) { Adresse = realloc(Adresse, sizeof(struct adresse)*(n+1)); if (!Adresse) { printf("out of memory\n"); exit(1); } Adresse[n].num = malloc( 256*sizeof( char)); Adresse[n].voie = malloc( 256*sizeof( char)); Adresse[n].nomVoie = malloc( 256*sizeof( char)); Adresse[n].ville = malloc( 256*sizeof( char)); Adresse[n].codPostale = malloc( 256*sizeof( char)); fscanf( f , "%s %s %s %s %s", Adresse[n].num, Adresse[n].voie, Adresse[n].nomVoie, Adresse[n].ville ,Adresse[n].codPostale); n++; } fclose(f); for (i = 0; i < n; i++) { printf("\nNuméro : %s \n", Adresse[i].num); printf("\nVoie : %s \n", Adresse[i].voie); printf("\nNom de la voie :%s \n", Adresse[i].nomVoie); printf("\nVille :%s \n", Adresse[i].ville); printf("\nCode postale : %s \n", Adresse[i].codPostale); } return 0; } Le programme compile bien mais malheureusement à l'affichage j'ai un problème au niveau du nom de la voie lorsqu'il contient plusieurs mots comme Paul Froment par exemple pour la première adresse. Du coup il y a un décalage : Numéro: 5 Voie: rue Nom de la voie: Paul Ville: Froment Code postale: Paris Numéro: 75001 Voie: 10 ...... Comment peux-je regler ce souci ? Merci d'avance !

AltStyle によって変換されたページ (->オリジナル) /