cs_dgac
Messages postés18Date d'inscriptionmercredi 9 mai 2007StatutMembreDernière intervention19 mai 2008
-
24 mai 2007 à 11:15
thomwebster
Messages postés63Date d'inscriptionmercredi 7 février 2007StatutMembreDernière intervention14 juin 2007
-
24 mai 2007 à 18:09
<hr style="COLOR: #d1d1e1" size="1" />
<!-- / icon and title -->
<!-- message -->
Bonjour j'ai essayé le code suivant
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<string.h>
#include<conio.h>
#define TAILLE_MAX 1000
int main(int argc, char *argv[])
{
FILE* fichier = NULL;
char chaine[TAILLE_MAX] = "";
fichier = fopen("test.txt", "r");
if(fichier != NULL)
{
while(fgets(chaine, TAILLE_MAX, fichier) != NULL)// On lit le fichier tant qu'on ne reçoit pas d'erreur (NULL)
{
printf("%s", chaine); // On affiche la chaîne qu'on vient de lire
}
while(chaine[0]=="4800")
{printf("bravo\n");
}
fclose(fichier);
}
Sleep(500000);
return0;
}
mais je n'arrive pas a récupérer les valeurs de mon fichier dans un tableau merci de m'aiguillé pour me dire comment faire.
(j'ai un probléme de test sur mon while)
Merci d'avance
thomwebster
Messages postés63Date d'inscriptionmercredi 7 février 2007StatutMembreDernière intervention14 juin 2007 24 mai 2007 à 18:09
non dans son cas, NULL vaut bien 0, c'était juste pour info que je te disais ça
fgets() renvoient le pointeur s si elle
réussit, et NULL en cas d'erreur, ou si la fin de
fichier est atteinte avant d'avoir pu lire au moins un
caractère.
tout est dans le man ;)
deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 20162 24 mai 2007 à 11:28
Yop,
Ton code me parait très bizzar, déjà pour la lecture du fichier != NULL, ce n'est pas la valeur NULL que tu doit tester mais 0 . En C NULL ne veut pas dire 0. Pour moi c'est la qu'est l'erreur, maintenant je ne sais a quoi sert ton prog, mais while(chaine[0]=="4800") pourquoi testes-tu si le premier caractère de ta chaine est = a 4800 ? Enfin voila. Esseye aussi un espace entre ton return et ton 0 ;) sinon erreur de compilation.
deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 20162 24 mai 2007 à 11:31
Aussi, petite précision , ici ta chaine de caractère a la fin de l'éxécution de ton programme ne contiendra plus que la dernière ligne du fichier lue. Pour stocker tout ton fichier dans un tableau, utilise un tableau 2 dimensions.
cs_dgac
Messages postés18Date d'inscriptionmercredi 9 mai 2007StatutMembreDernière intervention19 mai 2008 24 mai 2007 à 14:09
En fait ce quu il me faut c'est un code qui me permette le contenu d'un fichier et d'associer ce contenu a une variable
par exemple j'ai un fichier avec ecris 4800 a l'interieur et je veux lire ce fichier et associer a une variable A (tableau ou pas ) la valuer 4800.
Merci de votre aide quand meme(c'est pour un programme d'analyse de trame Jbus pour votre curiosité et j'essaye de résoudre mon probléme sur un prog simple pour l integrer ulterieuremtn sur mon prog)
thomwebster
Messages postés63Date d'inscriptionmercredi 7 février 2007StatutMembreDernière intervention14 juin 2007 24 mai 2007 à 14:22
pour affecter à une variable quelque chose qui se trouve dans un fichier utilise fscanf.
Par exemple pour récupérer 5 entier dans un fichier mon_fichier.conf:
int res;
int tableau[5];
FILE * descripteur;
descripteur=fopen("mon_fichier.conf","r");/* ouvre le fichier mon_fichier.conf en lecture*/
if(!descripteur){
/*erreur*/
exit(-1);
}
thomwebster
Messages postés63Date d'inscriptionmercredi 7 février 2007StatutMembreDernière intervention14 juin 2007 24 mai 2007 à 14:37
Je viens de lire ton code...
char chaine[TAILLE_MAX] = ""; //tu défini un tableau de caractères
/*
tu test si le caractère du rang 0 dans le tableau de caractères chaine vaut "4800"... "4800" est une chaine de caractères donc cela ce sera jamais égal...
*/
while(chaine[0]=="4800")
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 24 mai 2007 à 17:59
Ah au temps pour moi, je croyais que tu parlais du pointeur. Mais je connais pas la fonction fgets, mais si elle retourne en entier. Oui c'est anormal de mettre NULL.