begin process at 2012 05 29 12:01:32
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

fréquence de tous les termes dans un dossier


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

fréquence de tous les termes dans un dossier

samedi 28 août 2010 à 11:36:25 | fréquence de tous les termes dans un dossier

mervat


bonjour,
pour avoir la fréquence de tous les termes dans un dossier, j'ai écrit le code ci-dessous:
si par exemple mon dossier "test" contient 3 fichiers:

file1: a b b c a
file2:g f a d
file3:d d a c

le résultat voulu est:

Code :
la frequence du mot a est 4
la frequence du mot b est 2
la frequence du mot c est 2
la frequence du mot d est 3
la frequence du mot f est 1
la frequence du mot g est 1

alors que le résultat de mon code est:
Code :
la frequence du mot a est 2
la frequence du mot b est 2
la frequence du mot c est 1
la frequence du mot a est 1
la frequence du mot d est 1
la frequence du mot f est 1
la frequence du mot g est 1
la frequence du mot a est 1
la frequence du mot c est 1
la frequence du mot d est 2


Code C/C++ :
#include <dirent.h>
#include <string>
#include <fstream>
#include <iostream>
#include <map>
#include <vector>
 bool isValid(const std::string& path)
{
  return !path.empty() && path != "." && path != "..";
}

void fillMap(std::map<std::string, int>& map, const std::string& filename)
{
  std::ifstream entree(filename.c_str());
  std::string s;
  while (entree >> s)
	++map[s];
}


int main()
{
  static const std::string folder = "test";

   DIR* rep = opendir(folder.c_str());
  if (rep)
  {  struct dirent* lecture;

  while ((lecture = readdir(rep)))
	{
	  if (!isValid(lecture->d_name))
		 continue;

	  std::map<std::string, int> map;

	  fillMap (map,folder + "/" + lecture->d_name);

	  typedef std::map<std::string, int>::const_iterator iter;

	  for (iter it = map.begin(); it != map.end(); ++it)
	  std::cout << "La frequence du mot " << it->first << " est  " << it->second << std::endl;

	 }
	closedir(rep);

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

j'espère bien avoir votre aide, et merci.


mardi 31 août 2010 à 10:54:02 | Re : fréquence de tous les termes dans un dossier

mervat

Réponse acceptée !

bonjour,
En fait ma faute était dans l'affichage, donc j'ai juste déplacer les 2 instructions:
Code C/C++ :
typedef std::map<std::string, int>::const_iterator iter;

	  for (iter it = map.begin(); it != map.end(); ++it)
	  std::cout << "La frequence du mot " << it->first << " est  " << it->second << std::endl;



après la fermeture du rep, et j'ai obtenu le bon résultat


Cette discussion est classée dans : code, mot, frequence, map, std


Répondre à ce message

Sujets en rapport avec ce message

conversion char-->hexadécimal [ par ivdz ] Bonjour,Est-ce que quelqu'un sait convertir un char en sa valeur hexadécimal ?Voici ce que j'ai essayé :char mot[]="255";int hexa;sscanf(mot Pb test ! help !!!! [ par ast ] Bonsoir a tous !Je souhaiterais réaliser un code qui me demande un mot de passe et qui me rende la main lorsque le bon mot de passe est entre, mais pr Probleme liste chainee [ par jomanix ] Comme je ne vois pas l'arbre au milieu de la foret je m'en remet a vousC'est un dictionnaire et pour l'instant je ve juste afficher mon arbre bianaire Utilisation de std::map avec le type void * [ par toast3r ] Bonjour, J'utilise un tableau associatif, map et j'ai un problème au niveau de la récuperation des valeurs, voici le code que j'ai actuellement : # algo search_n sur un std::map !!!!!! [ par gege1024 ] je voudrais rechercher le nb d'occurence d'une valeur dans un std::mapje le fait pour un std::vector, c'est tout bon, mais je me demande pourquoi j'ar STD::map [ par noSnoR ] En codant j'ai eu besoin de créer une map telle que :std::map Sufs;Il me semble donc qu'il n'y a pas de problème de syntaxe... Seulement, voici ce que controle mot de passe [ par jetix ] Salut à tous, j'ai besoin d'aide concernant sur ce bout de code écrit en devc++. Son principe est de récupérer le mot de passe écrit par l'utilisateur code en c++ [ par Sgh_Khaoula ] Svp est ce que quelqun'un peut m'aider à coprendre la ligne "Triangles = new std::vector[ Depth ];"MultiMesh::MultiMesh( int depth ) { Depth = depth;  l'équivalent de rewind [ par marouamehri ] je travaille avec la bibliothèque SFML pour créer le jeu pendu et j'ai recours à la fonction rand pour affecter aléatoirement un numéro de ligne du di


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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 : 0,390 sec (4)

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