Bonjour,
Si on veut vraiment utiliser for_each on peut faire comme suit:
#include <sstream>
#include <string>
#include <iostream>
#include <fstream>
#include <algorithm>
void afficher( char &c )
{
// c est passé par référence, on pourrait le modifier.
std::cout << c;
}
int main( int argc, char *argv[])
{
/*
Vérification de l'argument...
*/
std::ifstream f;
f.open( argv[1] );
if ( f.is_open() )
{
std::stringstream sstream;
std::string s;
// lecture du fichier
sstream << f.rdbuf();
// fermeture du fichier
f.close();
// Récupérer la lecture dans une string
s = sstream.str();
// traîtement par boucle
std::for_each( s.begin(), s.end(), aff );
getchar();
return 0;
}
else
return 1;
}
Mais je dois avouer que j'ai codé le truc juste par curiosité, je préfère la solution de MamieMando.
Quoi ? On a plus le droit de lancer des fleurs maintenant ? ;-)
M.