Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fichier C++ algorithme

min_element

3 février 2024 à 18:14:31

Bonjour,

Je suis un cours "Programmez en orienté objet avec C++", j'en suis au chapitre " Utilisez les itérateurs sur les flux", le cours propose d'inclure les deux  lignes suivantes dans le code.

ifstream fichier("C:/Nanoc/data.txt");

cout << *min_element(istream_iterator<int>(fichier), istream_iterator<int>())<< endl;

Voici le code que j'ai écrit :

#include <algorithm>

#include <iterator>

#include <fstream>

#include <string>

#include <iostream>

usingnamespacestd;

intmain()

{

string nomFichier("/Users/michelcapelle/Documents/C++_Applications/IterateursFlux/IterateursFlux/IterateursFlux/data.txt");

    ifstream fichier(nomFichier);

    ofstream monFlux(nomFichier.c_str());

    if(monFlux)

        {

            monFlux << 1 << endl;

            monFlux << 42 << endl;

            monFlux << 2 << endl;

        }

        else

        {

cout << "ERREUR: Impossible d'ouvrir le fichier." << endl;

        }

cout << *min_element(istream_iterator<int>(fichier), istream_iterator<int>())<< endl;

return0;

}

Aucune erreur de syntaxe n'apparait, mais quand je lance le programme, ça plante.

J'obtiens le message suivant :

Static assertion failed due to requirement '_is_cpp17_forward_iterator<std::stream_iterator<int, char, std::char_traits<char>, long>>::value': std::min_element require a ForwardIterator

J'ai découvert que c'était la dernière ligne avant return qui posait des problèmes, si je la commente, le fichier data.txt se crée au bon endroit et se remplit correctement.

Si quelqu'un a une idée.


  • Partager sur Facebook
  • Partager sur Twitter
3 février 2024 à 19:28:17

Bonjour, en septembre 2022 je vous disais comment insérer du code sur le forum.  Pour ce sujet je vois que vous n'utilisez pas la méthode adéquate pour insérer du code sur le forum soit le bouton code </> de la barre d'outil. 

Je ne vais pas me répéter. Je ferme ce sujet pour non respect des règles du forum et non respect d'une demande de la modération.

Merci de lire et de respecter les règles du forum.

Liens conseillés

  • Partager sur Facebook
  • Partager sur Twitter