begin process at 2010 02 10 05:32:03
  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

Probleme GTK [ par Jo ] Salut,Quelqu'un pourrait me dire ou est l'erreur ?char * fichier; char *z;gchar *temp;temp = gtk_entry_get_text(GTK_ENTRY(Data));fd1= fopen((char *)te débutant butant... [ par grboss ] Avec Dev C++, des programmes bidons ne fonctionnent pas, car ils utilisent la fonction getch(); par exemple.avec turbo c++, ca passe, mais, il y a une ecriture fichier txt turboC++ [ par idk ] qqun connais une fonction, qui te place le cursor, (dans un fichier),CAD qui renvoie à la ligne suivante exemple char prenom="tom"char nom="bauq" Et d int to char ! [ par nullspace ] Voila mon problème !J'ai une résultat sous forme de variable INT, et je veux que ce résultat soit affecté à une variable de type CHAR.Genre, si j'ai 6 soustraire 2 heures [ par Olivier ] Salut,qqn pourrait me donner une fonction qui permettrait de soustraire 2 heures ?char * SubHour(char *,char *);Remarques :02:24:12-02:24:12=24:00:000 pb avec conio je cher cherche l'erreur( j'ai merde sur le mess precedent) [ par kin ] portpia.cpp#include"PortPiaPc.h"void main(){ PortPiaPc inst; inst(0x320,0x0f);}PortPiaPc.cpp#include "PortPiaPc.h"#include "conio.h"PortPiaPc::PortPia manipulation desformules logiques : URGENT [ par The_Legacy ] Bonjour, je suis en train de développer un petit programme qui permet d'évaluer des expression logiques telles que ((a et b) ou (c et (non d))).A part Debutant : ecrire et lire un fichier txt [ par manu ] Bonjour a tous.Je debute, aussi desole.... :)Je cherche donc a ecrire dans un fichier txt, puis a lire ce fichier ligne a ligne, faire un split / expl convertion CString à char[ ]! [ par souaisou ] comment convertir de cstring a une chaine de caracteres et d'un chaine de caractere a un cstring....Merci Conversion int -> char * [ par Xentor ] Bonjour tout le monde, et merci de lire mon message parce que je suis un vrai débutant !Je voudrais savoir comment convertir un entier en tableau de c


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

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 : 0,530 sec (3)

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