Lire un fichier .txt

Signaler
Messages postés
75
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
16 janvier 2007
-
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
-
slt, dans un fichier .txt j'ai des coordonné de point sous la forme :
x1,y1
x2,y2
...
mais je ne sait pas comment les récupéré et les mettre dans un tableau.( soit directement dans un tableau sous la forme de structure point ( tab.x, tab.y) ou alors passé par un tableau intermédiare qui stocke les donné)..

10 réponses

Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
21
FILE * file = fopen("mon fichier", "r");
int x;
int y;
char temp;
fscanf(file("%d%c%d", &x, &temp, &y);

++
Messages postés
25
Date d'inscription
lundi 6 mars 2006
Statut
Membre
Dernière intervention
5 mars 2007

c la solution la plus simple c sur.
Il a une autre methode que je te propose juste par curiosité car je l'ai utilisé dernierement.
struct coord
{
   int x;
   int y;
} point;

FILE * file = fopen("mon fichier", "rb");
fread(&point, sizeof(coord), 1, file);

tu as ainsi recupéré point.x et point.y tu en fais ce que tu veux ensuite.

/*
*"du code pour les connaisseurs pas pour les gros lecheurs"
*"j'reste underground du moment qu'j'reste integre que *microsoft me tienne bien le zgeg"
*/
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
21
tezca_system => ma méthode suppose que le fichier et un fichier texte (editable avec notepad par exemple), toi c'est que c'est un fichier binaire (que tu peux pas éditer dans notepad).
++
Messages postés
75
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
16 janvier 2007

merci bcp pour votre aide...Mais dane quel ibclude se trouve fscanf? parce que j'ai 2 erreurs dessus, et j'ai essayé, je pense, ttes les bibliothéque susceptible de la contenir ( stdlib, stdio, conio, string, fstream)
Messages postés
75
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
16 janvier 2007

error C2064: term does not evaluate to a function
error C2660: 'fscanf' : function does not take 1 parameters
voici les erreurs...ces pas une question de bibliothéque, mais il y a trop de paramétre dans fscanf. c'est avec ton  code Laurent.
Messages postés
75
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
16 janvier 2007

error C2064: term does not evaluate to a function
error C2660: 'fscanf' : function does not take 1 parameters
voici les erreurs...ces pas une question de bibliothéque, mais il y a trop de paramétre dans fscanf. c'est avec ton  code Laurent.
Messages postés
75
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
16 janvier 2007

error C2064: term does not evaluate to a function
error C2660: 'fscanf' : function does not take 1 parameters
voici les erreurs...ces pas une question de bibliothéque, mais il y a trop de paramétre dans fscanf. c'est avec ton  code Laurent.
Messages postés
75
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
16 janvier 2007

tezca, que représente coord dans ton code? le nombre de ligne dans le fichier texte?
Messages postés
75
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
16 janvier 2007

tezca_system-> Moi j'ai fait un class point
class point
{
private:
public:
 float x;
 float y;
 point(float a,float b);
 point(){};
 ~point(){};
 void operator= (point a);
 void aff();
};

lorsque j'ai modifier ton prog, ben il plante...

voici ton code modifier : 
     lecture(char *fichier)
{
 FILE * file = fopen("fichier", "r");
 point a;
 .........test
 float x,y;
 int i=0;


 char temp;
 while(i<361)
 {
 fread(&a, sizeof(point), 1, file);




 test.ajout(a);// j'ajoute dans un tableau de point les pint ainsi lue
                     //cette methode marche carrectement
 }
 fclose(file);
 return (....);
}

est ce que tu peut m'aider?
PS : le fichier que je lis est un .txt,
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
21
il y a une faute de frappe dans mon morceau de code ce n'est pas
fscanf(file("%d%c%d", &x, &temp, &y);
mais bien sur
fscanf(file, "%d%c%d", &x, &temp, &y);
dsl pour l'erreur