RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Serv: irc.irc-land.org
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 pb fscanf - chaine de caractere

Forum : C
Sous Catégorie : Aucune
Type du sujet : Sujet Normale
FAQ : FAQ C

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGE : [1]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM C

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
landraille
Nouveau membre
Inscrit : 24/02/2008
Messages : 14
Message
#150334
Posté le 11/03/08 à 19:51
Salut

J'aimerais récuperer les données d'un fichier dans un tableau de structures où une ligne du fichier correspond à une structure.
le fichier est le suivant :
liaison.txt dit :
HO OH 553 0.9572
OH HO 553 0.9572
CA CA 469 1.400
CA HA 367 1.080
HA CA 367 1.080
CB CB 520 1.350
HA CB 367 1.10
CB HA 367 1.10
CC OO 570 1.229
OO CC 570 1.229
HM CC 367 1.09
CC HM 367 1.09
CC NN 490 1.335
NN CC 490 1.335
HN NN 434 1.010
NN HN 434 1.010


j'ai écris ce programme mais il bug pour les chaines de caracteres et je ne vois pas où se trouve l'erreur (j'ai fait un autre programme similaire avec recuperation de données dans un tableau de structure avec des string et il marche....)

#include <stdio.h> #include <stdlib.h> struct LIAISON { char a[2]; char b[2]; long k; double r; }; int main() { long i=0; struct LIAISON liaison[16]; FILE* fichier_liaison = NULL; fichier_liaison=fopen("liaison.txt", "r"); // recupere donnees de liaison.txt et angle.txt for (i=0;i<16;i++) { fscanf(fichier_liaison, "%s%s%ld%lf", liaison[i].a, liaison[i].b, &liaison[i].k, &liaison[i].r); printf("ligne %ld : %s %s %ld %lf\n", i+1, liaison[i].a, liaison[i].b, liaison[i].k, liaison[i].r); } system("PAUSE"); }


En esperant que ce ne soit pas une erreur de m.... que je n'ai pas vu
merci d'avance

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

Spirit
Superviseur :
- C & C++
Modérateur :
- PHP
- Javascript
- MySQL
Avatar de Spirit
Inscrit : 07/04/2004
Messages : 1946
Message
#150349
Posté le 12/03/08 à 00:57
es-tu sur dy format de ta chaine à lire ?
d'après ton fichier j'aurais plutot mis
"%2s %2s %i %f"
%2s => chaine de 2 caractères maximum
espace
2 caractères
espace
entier
espace
flottant
__________________________
Spirit - modérateur casu ^-^'

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

landraille
Nouveau membre
Inscrit : 24/02/2008
Messages : 14
Message
#150474
Posté le 12/03/08 à 23:17
c'est bon, en fait il fallait que j'initialise mes chaines de caracteres à 3 et pas à 2 (car 2 lettres + caractere nul de fin de chaine)
merci

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM C



    PAGE : [1]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.