ça concerne la lecture et l'ecriture sur un fichier et ...

Signaler
Messages postés
1
Date d'inscription
vendredi 15 novembre 2002
Statut
Membre
Dernière intervention
21 novembre 2002
-
Messages postés
45
Date d'inscription
jeudi 10 octobre 2002
Statut
Membre
Dernière intervention
6 décembre 2002
-
voila mon pb :
j'ai fais un ptit prog de traitement de fichier. il sert à mettre certaines infos prises dans un fichier et les mettre dans un autre !!

1er probleme : ça marche mais ça plante à la fin de l'exe!!
2: comment passer en arguments source et donnee pour ouvrir et fermer les fichiers dans une fonction

j'ai ecrit :

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

struct support
{
char *nom;
char *type;
char *station;
char *angle;
char *strength;
char *swing;
};

void ouvrir() // ouverture du fichier source
{
}
void fermer() // fermeture des fichiers
{
}
void readfile() // lit les donnees du fichier
{
}

void main()
{
// future ouvrir : ouverture des fichiers

ifstream source("D:\\pls_cadd\\informatique\\report.txt");
ifstream donnee("D:\\pls_cadd\\informatique\\donnees.txt");
ifstream resultat("D:\\pls_cadd\\informatique\resultat.txt");

if (!source&&!donnee)
{
cout<<"ouverture impossible \n";
getch();
exit (1);
}
//futur readfile : traitement du fichier source

char *chaine = new char[50];
int i;
char *mot = new char[50];

donnee >> chaine;
cout<<chaine;

string s1=chaine;
source >> mot;
string s2=mot;
i=0;
while (s1!=s2&&i<100)
{
i++;
source >> mot; // On lit un mot !
s2=mot;
}

support pylone[20];
pylone[1].nom=mot;
resultat>>mot;
source>>mot;
pylone[1].type=mot;
source>>mot;
pylone[1].station=mot;
source>>mot;
pylone[1].angle=mot;
source>>mot;
pylone[1].strength=mot;
source>>mot;
pylone[1].swing=mot;

getch();

// future fermer
source.close();
donnee.close();
exit(0);

getch();
return 0;
}

si qun peut m'aider !!
merci

1 réponse

Messages postés
45
Date d'inscription
jeudi 10 octobre 2002
Statut
Membre
Dernière intervention
6 décembre 2002

hy
apparemment, tu ne fermes pas ton fichier résultat, et tu ne libères pas la mémoire allouée pour tes tampons
ex : delete(mot);

pour passer tes noms à une fonctions :

void mafonction(char * _szSource_)
{
ifstream source(_szSource_);
...
}

sinon pour passer le nom des fichiers à ton programme:

si 1er parametre => source
2nd parametre => destination

argc == 3
argv[0] => le nom de ton programme
argv[1] => source
argv[2] => destination

argv sont des chaines
shuss

l'lo