begin process at 2012 02 12 17:08:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

problème de lecture


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

problème de lecture

mercredi 18 février 2009 à 22:27:26 | problème de lecture

dodo1309


Hello ,

J'ai un petit problème de lecture lorsque j'essaye de lire ce fichier (en voici quelque ligne ) :

Le 12 minutes                           16/02/200900:0000:25La une    Actualité          
Une brique dans le ventre               16/02/200900:2500:50La une    Magazine           
JT traduction gestuelle                 16/02/200900:5006:00La une    Actualité          
Matin première                          16/02/200906:0009:40La une    Actualité          
Affaires à suivre                       16/02/200909:4010:05La une    Magazine           
Une brique dans le ventre               16/02/200910:0510:30La une    Magazine           
La kiné                                 16/02/200910:3010:30La une    Série Télé         
Questions d'argent                      16/02/200911:5911:59La une    Magazine           


La structure de fichier se comporte comme cela : 40 caractères puis 10car ,5car , 5car ,10car, 20car

J'ai essayé de faire ceci mais sela ne marche que pour la 1 ere ligne :

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

main(){

char v1[41];
char v2[11];
char v3[6];
char v4[6];
char v5[11];
char v6[21];
FILE*fdat = fopen("dat.dat","r");
int i;
//lecture anticipée pour le foef

fgets(v1,41,fdat);
fscanf(fdat,"%10s",v2);
fscanf(fdat,"%5s",v3);
fscanf(fdat,"%5s",v4);
fgets(v5,11,fdat);
fscanf(fdat,"%s",v6);


while(!(feof(fdat))){
  printf("%40s %10s %5s %5s %10s %20s",v1,v2,v3,v4,v5,v6); 

  fgets(v1,41,fdat);
  fscanf(fdat,"%10s",v2);
  fscanf(fdat,"%5s",v3);
  fscanf(fdat,"%5s",v4);
  fgets(v5,11,fdat);
  fscanf(fdat,"%s",v6);

 }
 
}


Cela donne comme résultat :


Le 12 minutes                            16/02/2009 00:00 00:25 La une       Actualité                                                                                                                                                                          
 Une brique  dans  le v entre                 16/02/200 900:2500:50La une    Magazine                                          
 JT tr aduct ion gestue  lle                  16/02/200900:5006:00La une    Actualit? ?                                        
 Matin  première                             16/02/200906:0009:40La une    Act ualité                                          
 Affaires ?  ? suivre                        16/02/200909:4010:05La une     Magazine                                           
  Une brique dans le  ventre               16/02/200910:0510:3 0La une     Maga zine                                  La kiné                                  16/02/200 910:3 010:3 0La une      Série Télé                                                   
 Questions  d'arg ent                         16/02/200


Merci D'avance de m'aider

@ +

jeudi 19 février 2009 à 10:18:38 | Re : problème de lecture

ed73

Réponse acceptée !
Bonjour,

Il faut lire les lignes du fichier dans une variable suffisament grande : 92 caractères soit la longueur d'une ligne + \n + \0
Il est inutile de lire la première ligne, tu peux faire une boucle while(fgets(...))
dans le cas d'un fichier à champs de longueur fixe strcpy est préférable.
Teste l'exsitence du FILE * avant de commencer la lecture

ed73

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

main(){

char ligne[92];
char v1[41];
char v2[11];
char v3[6];
char v4[6];
char v5[11];
char v6[21];
FILE*fdat = fopen("dat.dat","r");
int i;

if(fdat!=NULL){
   while(fgets(ligne,sizeof(ligne),fdat)){
     strcpy(v1,ligne,40);
     strcpy(v2,ligne+40,10);
     strcpy(v3,ligne+50,5);
     strcpy(v4,ligne+55,5);
     strcpy(v5,ligne+60,10); 
     strcpy(v6,ligne+70,20);

     printf("%40s %10s %5s %5s %10s %20s",v1,v2,v3,v4,v5,v6);  
     } 
   }
}
jeudi 19 février 2009 à 11:56:00 | Re : problème de lecture

dodo1309

Merci pour ta réponse mais j'ai une erreure de compilation : µ

 --> too many arguments to function 'strcpy'

Je pense ke la fonction strcpy n'a que deux argments



Merci d'avance



jeudi 19 février 2009 à 12:04:14 | Re : problème de lecture

Pistol_Pete

Réponse acceptée !
Utilise strncpy
A+

____________________________________________________________________________
Mon site internet :
  
[ Lien ]

jeudi 19 février 2009 à 13:28:46 | Re : problème de lecture

dodo1309

ah !! sa marche

Merci Bien




Cette discussion est classée dans : char, fscanf, 5s, magazine, fdat


Répondre à ce message

Sujets en rapport avec ce message

Problem lecture/ecriture fichier bmp [ par Laurdoue ] Bonjour, je suis en train de lire et écrire avec une image en bmp ma fonction d'écriture et de lecture fonctionne bien uniquement avec des image de di combinaisons possibles C(n,k) [ par mervat ] bonjour, je veux faire la combinaison de n entiers, j'ai trouvé ce code dans un forum qui convient à ce que je veux: [code=cpp]#include #include usi Erreur lors d'un delete[] [ par Albanderuaz ] Bonsoir tout le monde! J'ai une erreur sur un delete dont je n'arrive pas à trouver la solution. Le code appelle la fonction StartThread() qui va dém Recherche d'un numéro ligne par ligne [ par Vry ] Bonjour, je suis sur un programme en C où j'ai quelques soucis. Je possède un fichier texte où sont déjà entrer des données, je souhaiterai crée un fnsplit et fnmerge [ par samissam ] Bonjour, j'ai un code d'une fonction que je veux l'exploiter en Dev C++ mais ce dernier me renvoi des erreur sur les fnsplit et fnmerg, code: vo aider moi a compiler mon programme en devC++ [ par samissam ] bonjour, je demande d'aide sur les arbres binaire car je travaille dessus: j'ai fait un code en Dev C++ dont le but de lire et extraire les donnée Programme Moyenne [ par kable78 ] Bonjour, Je cherche à faire un programme qui permet le calcul d'une moyenne à partir d'un fichier. Dans ce fichier doit figurer le nom de l'élève sui compression lzw [ par walidomariouma ] bonjour j'ai des difficultés dans l'algorithme de LZW bon concernant la compression c'est bon ça marche. en fait j'ai pas pu faire une fct dans la par


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 10,140 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales