ylovechichi
Messages postés41Date d'inscriptionmercredi 15 novembre 2000StatutMembreDernière intervention26 septembre 2005
-
12 juin 2005 à 16:30
ylovechichi
Messages postés41Date d'inscriptionmercredi 15 novembre 2000StatutMembreDernière intervention26 septembre 2005
-
14 juin 2005 à 18:26
slt tout le monde,je voudrais faire une comparaison entre 2 fichiers.bon je vais vous expliquer cke je veux exactement. j'ai 2 fichiers ville1 et ville2 je lai ouvre en lecture je parcours les valeurs du fichier1 et fichier2 si je trouve une valeur differente je stock ds un autre fichier ke j ouvre en écriture la valeur du fichier1.
par exemple:
fichier ville1 :16y 56 98p 1k
fichier ville2 :78a 9s 2y 56
fichier comp :16y 98p 1k
le fichier comp est le résultat ke je voudrais avoir
merci d'avance
int comparer(char trad_ville1[10],char trad_ville2[10])
{
int i,j;
cout<<"comparaison"<<endl;
ofstream fichier_comp("comparaison.txt",ios::app);
ifstream fichier_ville1("ville1.txt");
if (!fichier_ville1)
{
cerr << "Impossible d'ouvrir le fichier!" << endl;
return (-1);
}
ifstream fichier_ville2("ville2.txt");
if (!fichier_ville2)
{
cerr << "Impossible d'ouvrir le fichier!" << endl;
return (-1);
}
while (!fichier_ville1.eof())
{
fichier_ville1>>trad_ville1;
while (!fichier_ville2.eof())
{
fichier_ville2>>trad_ville2;
if (trad_ville1[i]!=trad_ville2[j])
{
j++;
cout<<trad_ville1[i];
fichier_comp<<trad_ville1;
}
ylovechichi
Messages postés41Date d'inscriptionmercredi 15 novembre 2000StatutMembreDernière intervention26 septembre 2005 12 juin 2005 à 17:15
slt , mnt j modifié 1 peu mon code.cki ne marche pas c k il me affiche tout simplement les données ke j'ai stocké ds le fichier ville_1
fichier_ville1 ::16y 56 98p 1k
fichier_ville2 :78a 9s 2y 56
le résultat sera ds fichier comp :16y 98p 1k
seulement les valeurs différente du fichier_ville1.
j espere ke vous comprenez mieux mon code.merci
int comparer()
{
int i,j,k;
cout<<"comparaison"<<endl;
ofstream fichier_comp("comparaison2.txt",ios::out);
ifstream fichier_ville1("ville1.txt",ios::in);
if (!fichier_ville1)
{
cerr << "Impossible d'ouvrir le fichier!" << endl;
return (-1);
}
ifstream fichier_ville2("ville2.txt",ios::in);
if (!fichier_ville2)
{
cerr << "Impossible d'ouvrir le fichier!" << endl;
return (-1);
}
while (!fichier_ville1.eof())
{
i=0;
fichier_ville1>>trad_ville1;
while ( !fichier_ville2.eof() )
{
j=0;
fichier_ville2>>trad_ville2;
if (trad_ville1[i]!=trad_ville2[j]) /*c ici ke je fais la comparaison entre les valeurs du fichier_ville1 et fichier_ville2*/
j++;
}
ylovechichi
Messages postés41Date d'inscriptionmercredi 15 novembre 2000StatutMembreDernière intervention26 septembre 2005 12 juin 2005 à 19:44
#include <vector>
...
std::vector< std::string > file2;
std::string tmp;
while ( !fichier_ville2.eof() )
{
fichier_ville2 >> tmp;
file2.push_back(tmp); //je comprends pas bien cette ligne
}
// apres tu passes en revue chaque élément du fichier 1:
std::vector<std::string>::iterator it;
while (!fichier_ville1.eof() )
{
fichier_ville1 >> tmp;
it = file2.begin();
while ( (tmp != *it) && (it != file2.end())
it ++;
if ( it == file2.end()) fichier_comp << tmp <<" "; // si il n'a pas été trouvé.
// tu mets ce que tu veux comme séparateur
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
ylovechichi
Messages postés41Date d'inscriptionmercredi 15 novembre 2000StatutMembreDernière intervention26 septembre 2005 12 juin 2005 à 20:27
merci bcp mais j 'ai 10 erreurs je ne sais pas comment les résoudre .
voici le code:
int comparer()
{
int i,j;
cout<<"comparaison"<<endl;
ofstream fichier_comp("comparaison2.txt",ios::out|ios::app);
ifstream fichier_ville1("ville1.txt",ios::in);
if (!fichier_ville1)
{
cerr << "Impossible d'ouvrir le fichier!" << endl;
return (-1);
}
ifstream fichier_ville2("ville2.txt",ios::in);
if (!fichier_ville2)
{
cerr << "Impossible d'ouvrir le fichier!" << endl;
return (-1);
}
std::vector< std::string > file2;
std::string tmp;
while ( !fichier_ville2.eof() )
{
fichier_ville2 >> tmp; // c ici k il ya erreur
file2.push_back(tmp);
}
std::vector<std::string>::iterator it;
while (!fichier_ville1.eof() )
{
fichier_ville1 >> tmp; // meme ici
it = file2.begin();
while ( (tmp != *it) && (it != file2.end()) // ici ossi
it ++;
if ( it == file2.end()) fichier_comp << tmp <<" "; }
cout<<"comparaison"<<endl;
ofstream fichier_comp("comparaison2.txt",ios::out|ios::app);
ifstream fichier_ville1("tmp1.txt",ios::in);
if (!fichier_ville1)
{
cerr << "Impossible d'ouvrir le fichier!" << endl;
return (-1);
}
ifstream fichier_ville2("tmp2.txt",ios::in);
if (!fichier_ville2)
{
cerr << "Impossible d'ouvrir le fichier!" << endl;
return (-1);
}
std::vector< std::string > file2;
std::string tmp;
while ( !fichier_ville2.eof() )
{
fichier_ville2 >> tmp; // c ici k il ya erreur
file2.push_back(tmp);
}
std::vector<std::string>::iterator it;
fichier_ville1 >> tmp;
while (!fichier_ville1.eof() )
{
it = file2.begin();
while ((it != file2.end()) && (tmp != *it))
it ++;
if ( it == file2.end()) fichier_comp << tmp <<" ";
fichier_ville1 >> tmp;
}
ylovechichi
Messages postés41Date d'inscriptionmercredi 15 novembre 2000StatutMembreDernière intervention26 septembre 2005 14 juin 2005 à 00:59
merci bcp mnt ca marche bien au niveau de la compilation mais le problème n'est pas encore résolue.il y a 1 pb au niveau du fichier_comp qui boucle à l'infini
remercie :-)
ylovechichi
Messages postés41Date d'inscriptionmercredi 15 novembre 2000StatutMembreDernière intervention26 septembre 2005 14 juin 2005 à 18:26
oui tu as raison j'ai oublié de modifier le nom du fichier "temp1" c'est pr cela k'il ne marchait pas. merci bcp pr ton aide
encore un ptit problème, je ne sais pas prkoi ca ne marche pas kand je compile avec BORLAND C++.
l'erreur ke je trouve k'il ne connait pas les bibliothèques :
#include <vector>
#include
#include <ofstream>
using namespace std;