begin process at 2012 05 29 14:35:09
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Général

 > 

problème dans l'affichage dans un fichier


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

problème dans l'affichage dans un fichier

jeudi 16 décembre 2010 à 15:26:29 | problème dans l'affichage dans un fichier

mervat

bonjour,
j'ai écrit la fonction ci-dessous qui calcule tfidf
mon programme est bien exécutable et donne de bons résultats si j'affiche avec cout, mais je veux afficher dans un fichier de sortie, et dans ce cas j'ai eu de mauvaises résultats (il m'affiche les tfidf du dernier fichier seulement aolrs que j'ai 3 fichiers dans le dossier "in")
Code C/C++ :
  void calcultfidf( const std::string& filename,const std::string folder)
{  std::multiset<std::string>::const_iterator iter;
   std::ofstream ofs ("tfidf.txt");
   std::multiset<std::string> liste;
   DIR* rep = opendir(folder.c_str());
   std::map<std::string, int> map;
  fillMap(map, filename);
  int nbtotal=0;
  int nbfic=0;
  int som = 0;
  float idf;
  float tf;
  typedef std::map<std::string, int>::const_iterator iter3;
  for (iter3 it = map.begin(); it != map.end(); ++it)
	som += it->second;

  std::cout << "Les tfidf du document " << filename <<std::endl<<std::endl;
  for (iter3 it = map.begin(); it != map.end(); ++it)
	{if (som !=0)
	   {
		 tf= (float)it->second / som;
		 std::cout << "* tf du mot " << it->first << " est " << tf << std::endl;
	   }

	   if (rep)
		{
		  struct dirent* lecture;

		  while ((lecture = readdir(rep)))
			{
			  nbtotal++;
			  if (!isValid(lecture->d_name))
				  continue;
			  std::string filename = lecture->d_name;
			  fillSet (liste, folder + "/" + filename);
			}


		  for (iter=liste.begin(); iter!=liste.end(); iter++)
			{
			  if (it->first == *iter)
				 nbfic++;
			}
		}
		closedir(rep);

		if (nbfic == 0)
		   idf = 0;

		else
		   idf = log(((float) nbtotal-2) / nbfic);

		   std::cout<< "* tfidf du mot " << it->first << " est " << tf * idf<<std::endl<<std::endl<<std::endl;
		   nbfic=0;

	}

}


et le main est le suivant:
Code C/C++ :
  	int main()
{  static const std::string folder = "in";

   DIR* rep1 = opendir(folder.c_str());
  if (rep1)
  {  struct dirent* lecture1;

  while ((lecture1 = readdir(rep1)))
	{
	  if (!isValid(lecture1->d_name))
	continue;

		calcultfidf (folder + "/" + lecture1->d_name, folder);
	 }
	closedir(rep1);

  }
 system("pause");
return (0);
}

j'espère bien avoir votre aide car ça me bloque et c'est vraiment obligatoire que j'aurai le résultat dans un fichier.
jeudi 16 décembre 2010 à 16:36:14 | Re : problème dans l'affichage dans un fichier

mervat

Réponse acceptée !
bon enfin je suis arrivée à résoudre mon problème;
dans la fonction tf.idf j'ai créé 2 map, la première pour tf et la deuxième pour tf.idf,
et j'ai laissé l'affichage dans le main, donc j'ai juste consulté ces 2 map pour voir les tf et les tf.idf de chaque mot.


Cette discussion est classée dans : fichier, map, std, folder, iter


Répondre à ce message

Sujets en rapport avec ce message

problème de fermeture de fichier [ par RubikEID ] Salut à tous.Après pas mal de recherche je n'ai pas à réussi à trouver de réponse.je suis confronter au problème suivant : je veux effectue la recherc Echelle OpenGL !! [ par barraq ] Salut a tous, J'ai créé une "heightmap" ou dedans je peux me deplacer. Je lis dans un fichier ou mes vecteur sont tous rangés. Par exemple : fichier Map en fichier TXT [ par norton ] Hello,  j'ai commencé un jeu en 2d (opengl) et j'aimerai pouvoir charger des textures en fonction des chiffres ou caractères contenu dans un fichier t probleme avec dev c++ [ par gromito ] j ai un probleme d inclusion de fichier avec dev c++ : mon premier fichier ressemble a ca: //fichier main.cpp #include "ch remplissage d'un std::list [ par boun85 ] Voila mon probleme est assez simple je pense mais je n'arrive pas a le resoudre. Voila j'ai une fonction qui lit un fichier et qui rempli une std::lis Music Folder et iTunes [ par ben_pit ] Bonjour,J'utilise le logiciel iTunes sous Windows XP et je souhaiterai, depuis un programme externe (codé en VB de préférence), récupére le "iTunes mu comment distinguer entre fichier et repértoire! [ par almousafer ] salut tlm Je viens d'ecrire une fonction qui parcours le répertoire passé en argument et liste son contenu (merci à Fred), mais il reste encore un pb, modifier la ligne N [ par Rhazou ] bonjour, J'ai un petit probleme concernant les flux entré/sortie. j'aimerais replacer un ligne par une autre dasn un fichier. je cherche depusi un mom ALLEGRO : PACKFILE ??? mode d'emploi ? [ par Darksheep ] Bonjour , je débute avec allegro et j'ai vu rescement dans une source, un rpg , l'utilisation d'un fichier data packfile , qui contiendrait la map du


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 1,638 sec (4)

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