begin process at 2010 02 09 17:31:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

toujours lire fichier, je vais mourir acause de ça !!!!


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

toujours lire fichier, je vais mourir acause de ça !!!!

vendredi 4 juillet 2003 à 17:01:40 | toujours lire fichier, je vais mourir acause de ça !!!!

khalidlyon

Ensemble pour la science

Bonjour,
suite a ma question "lire fichier au secours, et suite a votre réponses, voila ce que j'ai fais.
------------------------------------------------

FILE *pf;
char *ligne[50];
int dim_lu = 0;
float val;
int i = 0;

pf=fopen("test.dat","r");

while(fgets(ligne,50,pf)!=NULL)
{
if (ligne == "dim")
dim_lu = 1;
if (dim_lu == 1)
sscanf(pf,"%f",&ligne[i]);
i++;
}
------------------------------------------------------
mais le pb. je reçois qlq erreurs:









the referenced type of the pointer value "ligne" is "pointer to char", which is not compatible with "char". (ptrmismatch)
while(fgets(ligne,50,pf)!=NULL)
---------------^
cc: Warning: in this statement ""dim"" of type "pointer to char", is being converted to "pointer to pointer to char". (cvtdiftypes)
if (ligne == "dim")
-----------^
cc: Warning: this statement, the referenced type of the pointer value "pf" is "struct declared without a tag", which is not compatible with "const char". (ptrmismatch)
sscanf(pf,"%f",&ligne[i]);
----------------^



Est ce que vous pouvez m'aider une autre fois et me trouver une solution a ça SVP, car vraiment je suis bloqué, et je peux plus rien a faire depuis 20 jours.
Merci infiniment.
mon fichier
hhff
fgg
hth rsg
gg fgfg
gfg fsgs
dim
3
2.35
15.6
17.5
vendredi 4 juillet 2003 à 17:16:45 | Re : toujours lire fichier, je vais mourir acause de ça !!!!

BruNews

Administrateur CodeS-SourceS
PRECISIONS: les fgets et trucs de ce genre, je fais que c'est bon, je ne pratique que win32 donc...

char *ligne[50]; tableau de pointeurs ???

FILE *pf;
char ligne[50]; // ira mieux, tableau de 50 octets
int dim_lu = 0;
float val;
int i = 0;

pf=fopen("test.dat","r");

while(fgets(ligne,50,pf)!=NULL)
{
if (*((unsigned int *)ligne) == 0xD6D6964)
sscanf(pf,"%f",&ligne[i]);
i++;
}

BruNews, ciao...


-------------------------------
Réponse au message :
-------------------------------

> Ensemble pour la science
>
> Bonjour,
> suite a ma question "lire fichier au secours, et suite a votre réponses, voila ce que j'ai fais.
> ------------------------------------------------
>
> FILE *pf;
> char *ligne[50];
> int dim_lu = 0;
> float val;
> int i = 0;
>
> pf=fopen("test.dat","r");
>
> while(fgets(ligne,50,pf)!=NULL)
> {
> if (ligne == "dim")
> dim_lu = 1;
> if (dim_lu == 1)
> sscanf(pf,"%f",&ligne[i]);
> i++;
> }
> ------------------------------------------------------
> mais le pb. je reçois qlq erreurs:
>
>
>
>
>
>
>
>
>
> the referenced type of the pointer value "ligne" is "pointer to char", which is not compatible with "char". (ptrmismatch)
> while(fgets(ligne,50,pf)!=NULL)
> ---------------^
> cc: Warning: in this statement ""dim"" of type "pointer to char", is being converted to "pointer to pointer to char". (cvtdiftypes)
> if (ligne == "dim")
> -----------^
> cc: Warning: this statement, the referenced type of the pointer value "pf" is "struct declared without a tag", which is not compatible with "const char". (ptrmismatch)
> sscanf(pf,"%f",&ligne[i]);
> ----------------^
>
>
>
> Est ce que vous pouvez m'aider une autre fois et me trouver une solution a ça SVP, car vraiment je suis bloqué, et je peux plus rien a faire depuis 20 jours.
> Merci infiniment.
> mon fichier
> hhff
> fgg
> hth rsg
> gg fgfg
> gfg fsgs
> dim
> 3
> 2.35
> 15.6
> 17.5
vendredi 4 juillet 2003 à 17:33:48 | Re : toujours lire fichier, je vais mourir acause de ça !!!!

BruNews

Administrateur CodeS-SourceS
alors je suis alle voir, le fgets ne lit pas ligne par ligne alors ce que je t'ai mis n'ira pas.
Ta methode n'ira jamais, exemple si le 'd' se trouve en postion 49 dans le fichier tu ne verras jamais 'dim' en entier dans le buffer ligne.
Methode qui va bon:
Aspire tout dans un buffer, place 2 pointeurs, c et d, au debut du buffer. A chaque tour, et tant que non fin du buffer, verifie que les 4 octets en partant de c valent bien 'dim\r' avance d jusque nouvelle ligne(position du prochain \n + 1, si c a verifie bon ok, sinon c = d et on boucle.
BruNews, ciao...


-------------------------------
Réponse au message :
-------------------------------

> PRECISIONS: les fgets et trucs de ce genre, je fais que c'est bon, je ne pratique que win32 donc...
>
> char *ligne[50]; tableau de pointeurs ???
>
> FILE *pf;
> char ligne[50]; // ira mieux, tableau de 50 octets
> int dim_lu = 0;
> float val;
> int i = 0;
>
> pf=fopen("test.dat","r");
>
> while(fgets(ligne,50,pf)!=NULL)
> {
> if (*((unsigned int *)ligne) == 0xD6D6964)
> sscanf(pf,"%f",&ligne[i]);
> i++;
> }
>
> BruNews, ciao...
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Ensemble pour la science
> >
> > Bonjour,
> > suite a ma question "lire fichier au secours, et suite a votre réponses, voila ce que j'ai fais.
> > ------------------------------------------------
> >
> > FILE *pf;
> > char *ligne[50];
> > int dim_lu = 0;
> > float val;
> > int i = 0;
> >
> > pf=fopen("test.dat","r");
> >
> > while(fgets(ligne,50,pf)!=NULL)
> > {
> > if (ligne == "dim")
> > dim_lu = 1;
> > if (dim_lu == 1)
> > sscanf(pf,"%f",&ligne[i]);
> > i++;
> > }
> > ------------------------------------------------------
> > mais le pb. je reçois qlq erreurs:
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > the referenced type of the pointer value "ligne" is "pointer to char", which is not compatible with "char". (ptrmismatch)
> > while(fgets(ligne,50,pf)!=NULL)
> > ---------------^
> > cc: Warning: in this statement ""dim"" of type "pointer to char", is being converted to "pointer to pointer to char". (cvtdiftypes)
> > if (ligne == "dim")
> > -----------^
> > cc: Warning: this statement, the referenced type of the pointer value "pf" is "struct declared without a tag", which is not compatible with "const char". (ptrmismatch)
> > sscanf(pf,"%f",&ligne[i]);
> > ----------------^
> >
> >
> >
> > Est ce que vous pouvez m'aider une autre fois et me trouver une solution a ça SVP, car vraiment je suis bloqué, et je peux plus rien a faire depuis 20 jours.
> > Merci infiniment.
> > mon fichier
> > hhff
> > fgg
> > hth rsg
> > gg fgfg
> > gfg fsgs
> > dim
> > 3
> > 2.35
> > 15.6
> > 17.5
>
vendredi 4 juillet 2003 à 20:41:56 | Re : toujours lire fichier, je vais mourir acause de ça !!!!

JCDjcd

et le teste pf == NULL ?

mais non je rigole !



-------------------------------
Réponse au message :
-------------------------------

> alors je suis alle voir, le fgets ne lit pas ligne par ligne alors ce que je t'ai mis n'ira pas.
> Ta methode n'ira jamais, exemple si le 'd' se trouve en postion 49 dans le fichier tu ne verras jamais 'dim' en entier dans le buffer ligne.
> Methode qui va bon:
> Aspire tout dans un buffer, place 2 pointeurs, c et d, au debut du buffer. A chaque tour, et tant que non fin du buffer, verifie que les 4 octets en partant de c valent bien 'dim\r' avance d jusque nouvelle ligne(position du prochain \n + 1, si c a verifie bon ok, sinon c = d et on boucle.
> BruNews, ciao...
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > PRECISIONS: les fgets et trucs de ce genre, je fais que c'est bon, je ne pratique que win32 donc...
> >
> > char *ligne[50]; tableau de pointeurs ???
> >
> > FILE *pf;
> > char ligne[50]; // ira mieux, tableau de 50 octets
> > int dim_lu = 0;
> > float val;
> > int i = 0;
> >
> > pf=fopen("test.dat","r");
> >
> > while(fgets(ligne,50,pf)!=NULL)
> > {
> > if (*((unsigned int *)ligne) == 0xD6D6964)
> > sscanf(pf,"%f",&ligne[i]);
> > i++;
> > }
> >
> > BruNews, ciao...
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Ensemble pour la science
> > >
> > > Bonjour,
> > > suite a ma question "lire fichier au secours, et suite a votre réponses, voila ce que j'ai fais.
> > > ------------------------------------------------
> > >
> > > FILE *pf;
> > > char *ligne[50];
> > > int dim_lu = 0;
> > > float val;
> > > int i = 0;
> > >
> > > pf=fopen("test.dat","r");
> > >
> > > while(fgets(ligne,50,pf)!=NULL)
> > > {
> > > if (ligne == "dim")
> > > dim_lu = 1;
> > > if (dim_lu == 1)
> > > sscanf(pf,"%f",&ligne[i]);
> > > i++;
> > > }
> > > ------------------------------------------------------
> > > mais le pb. je reçois qlq erreurs:
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > the referenced type of the pointer value "ligne" is "pointer to char", which is not compatible with "char". (ptrmismatch)
> > > while(fgets(ligne,50,pf)!=NULL)
> > > ---------------^
> > > cc: Warning: in this statement ""dim"" of type "pointer to char", is being converted to "pointer to pointer to char". (cvtdiftypes)
> > > if (ligne == "dim")
> > > -----------^
> > > cc: Warning: this statement, the referenced type of the pointer value "pf" is "struct declared without a tag", which is not compatible with "const char". (ptrmismatch)
> > > sscanf(pf,"%f",&ligne[i]);
> > > ----------------^
> > >
> > >
> > >
> > > Est ce que vous pouvez m'aider une autre fois et me trouver une solution a ça SVP, car vraiment je suis bloqué, et je peux plus rien a faire depuis 20 jours.
> > > Merci infiniment.
> > > mon fichier
> > > hhff
> > > fgg
> > > hth rsg
> > > gg fgfg
> > > gfg fsgs
> > > dim
> > > 3
> > > 2.35
> > > 15.6
> > > 17.5
> >
>
lundi 7 juillet 2003 à 09:28:35 | Re : toujours lire fichier, je vais mourir acause de ça !!!!

khalidlyon

Re bonjour, Merci pour votre aide, le pb. que je sais faire ce que Vous m'avez dit, de plus le code que vous m'avez donner je sais pas ou sa vient, car au lieu de "dim" moi j'ai "$POINTS".
est ce que je peux avoir un code SVP sur langage C.
Merci infiniment, et je m excuse car je vous dérange mais je suis vraiment bloqué.
merci une autre fois.
dimanche 5 août 2007 à 11:03:14 | Re : toujours lire fichier, je vais mourir acause de ça !!!!

khalidlyon



[font=Times New Roman]Ensemble pour la science[/font=Times New Roman]


Cette discussion est classée dans : ligne, pf, char, is, pointer


Répondre à ce message

Sujets en rapport avec ce message

probléme d'écriture fichier [ par phoenixadb ] phoenixadbJ'ai un problème sur une fonction que je n'arrive pas à résoudremon nom de fichier est test.txtet ma fonction:void ecriturefichier(char* nom Pointer directement vers la memoire video (probleme de cast) [ par Darkneon ] Salut, J'essais de declarer mon pointeur vers la memoire video comme suitchar *screen = (char *)0xA0000000L;mais ca me donne le message d'erreur suiv tableau de chaines de char [ par JaguiJaguar ] Salut, je suis etudiant.je dois réaliser un prog en c qui lit une chaine de char, la stocke dans la premiere ligne d'un tableau char *tab[n]où n est l Récupérer data fichier TXT entre 3e et dernière ligne (only) [ par MissSixty ] Salut !1ère question :Je cherche présentement un moyen de débuter la lecture de mon fichier à partir de la 3e ligne et d'arrêter la lecture à l'avant tableau a 2 dimensions [ par minet03 ] Bonjour, ceux qui ont eu l'occasion de me parler sur #Programmation vont surement me détester à jamais, mais voilà j'ai encore un problème avec ce tab Parametre sur la ligne de commande [ par payen ] Salut a tous,j'ai un petit souci en C++ ...alors voila : j'ai ecrit un code qui prend comme parametres sur la ligne de commande 2 entiers. Ensuite, pl probleme de comparaison de membre de structure par rapport a une donnée de fichier [ par Yossi ] bonjour struct adherents{ int numadherent; char nom[25]; char prenom[30]; char adresse[80]; char cp[5]; char ville[40]; };j'ai un probleme (surement u Operateur new allocation new [ par yserver ] Bonjour, je cherche un peu d'aide pour cette modeste class.Telle quelle est présenté la elle génère une erreur  lors de l'execution (ligne sig Libération mémoire.... [ par Clonk ] Bonjour,Voilà, j'ai une appli qui utilise énormément de mémoire, jai plusieurs listes chainées de plusieurs milliers d'enregistrements, de nombreuses lire une ligne dans un fichier txt et extraire les champs entre ; [ par drcmomo ] Bonjour!!je vous en prie aidez moi svp!!j'ecris ce code qui permet de lire un fichier txt, apres l'ouverture je dois lire une ligne et extraire les do


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,484 sec (3)

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