IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Calcul de la somme de valeurs contenues dans un fichier txt


Sujet :

C++

  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2022
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2022
    Messages : 17
    Par défaut Calcul de la somme de valeurs contenues dans un fichier txt
    Bonjour,

    Comment calculer la somme de valeurs contenues dans un fichier txt en passant par une methode? Merci de votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 599
    Par défaut
    bonjour,

    il faut, écrire une méthode qui:
    - ouvre le fichier texte
    - lit les lignes du fichier texte
    - extraire et convertir en nombre ce qu'il y a dans chaque ligne
    - en profiter pour ajouter chaque nombre trouvé
    - fermer le fichier texte si nécessaire
    - et la méthode se termine en retournant la somme calculée.

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2022
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2022
    Messages : 17
    Par défaut
    Citation Envoyé par dalfab Voir le message
    bonjour,

    il faut, écrire une méthode qui:
    - ouvre le fichier texte
    - lit les lignes du fichier texte
    - extraire et convertir en nombre ce qu'il y a dans chaque ligne
    - en profiter pour ajouter chaque nombre trouvé
    - fermer le fichier texte si nécessaire
    - et la méthode se termine en retournant la somme calculée.

    Un grand merci pour le retour.

  4. #4
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2022
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2022
    Messages : 17
    Par défaut
    Citation Envoyé par dalfab Voir le message
    bonjour,

    il faut, écrire une méthode qui:
    - ouvre le fichier texte
    - lit les lignes du fichier texte
    - extraire et convertir en nombre ce qu'il y a dans chaque ligne
    - en profiter pour ajouter chaque nombre trouvé
    - fermer le fichier texte si nécessaire
    - et la méthode se termine en retournant la somme calculée.

    Bonjour. Comment faire reverse des nombres contenus dans un fichier?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    void inverser(int *tableau, int b);
     
     
     
    void inverser(int *tableau, int b)
    {
        int n;
        int nombrelus;
        int temp, k, j;
     
        string monfichier;  // 1 2 3 4 5 6 7 8 9 10
        ifstream fichier(monfichier);
     
        cout << " Entrez le nom du fichier: ";
        cin >> monfichier;
     
        fichier.open(monfichier);
     
        if(!fichier)
        {
            cerr << "Fichier introuvable";
        }
     
        fichier >>n;
        tableau = new int[n];
     
        while(fichier >> nombrelus)
        {
            cout << nombrelus<< endl;
        }
     
        n = sizeof(tableau)/sizeof(tableau[0]);
     
        for ( k = 0, j = n-1; k < j; k++, j--)
        {
             ??????????????????
        }
           cout << " Le tableau inverse: " << tableau << endl;
    }

  5. #5
    Expert confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 599
    Par défaut
    Un tableau en C++ c'est std::array<> ou std::vector<>. Et il n'existe aucune bonne raison d'utiliser new!
    Ton code ne rempli jamais tableau ni monfichier. std::cout ne sait pas naturellement afficher un tableau.
    Et pour inverser l'ordre il y a la fonction std::reverse().

    Un exemple (peut-être en avance sur ce que tu as appris):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    #include <fstream>
    #include <string>
    #include <iostream>
    #include <vector>
    #include <algorithm>
     
    std::vector<int>  lire_et_inverser( std::string const& file_name ) {
    	std::vector<int>  result;
    	std::ifstream  file( file_name );
     
    	if ( file ) {
    		std::copy( std::istream_iterator<int>{file}, std::istream_iterator<int>{}, std::back_inserter( result ) ); // lit et convertit les entiers du fichier
    		std::reverse( result.begin(), result.end() ); // et les inverse
    	}
    	return  result;
    }
     
    int  main() {
    	auto const  tableau = lire_et_inverser( "fichier.txt" );
    	std::cout << "les données réordonnées du fichier\n";
    	std::copy( tableau.begin(), tableau.end() , std::ostream_iterator<int>( std::cout, " , " ) );
    }

  6. #6
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2022
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2022
    Messages : 17
    Par défaut
    Citation Envoyé par dalfab Voir le message
    Un tableau en C++ c'est std::array<> ou std::vector<>. Et il n'existe aucune bonne raison d'utiliser new!
    Ton code ne rempli jamais tableau ni monfichier. std::cout ne sait pas naturellement afficher un tableau.
    Et pour inverser l'ordre il y a la fonction std::reverse().

    Un exemple (peut-être en avance sur ce que tu as appris):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    #include <fstream>
    #include <string>
    #include <iostream>
    #include <vector>
    #include <algorithm>
     
    std::vector<int>  lire_et_inverser( std::string const& file_name ) {
    	std::vector<int>  result;
    	std::ifstream  file( file_name );
     
    	if ( file ) {
    		std::copy( std::istream_iterator<int>{file}, std::istream_iterator<int>{}, std::back_inserter( result ) ); // lit et convertit les entiers du fichier
    		std::reverse( result.begin(), result.end() ); // et les inverse
    	}
    	return  result;
    }
     
    int  main() {
    	auto const  tableau = lire_et_inverser( "fichier.txt" );
    	std::cout << "les données réordonnées du fichier\n";
    	std::copy( tableau.begin(), tableau.end() , std::ostream_iterator<int>( std::cout, " , " ) );
    }

    C'est très appréciable. Ton code marche bien.

    J'ai une autre casse tête, comment l'intégrer dans une méthode et retourner le résultat dans Main? J'ai modifié ma méthode (voir plus haut), mais rien ne marche

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 446
    Par défaut
    Citation Envoyé par Nigush Voir le message
    J'ai une autre casse tête, comment l'intégrer dans une méthode et retourner le résultat dans Main? J'ai modifié ma méthode (voir plus haut), mais rien ne marche


    "lire_et_inverser" est déjà une fonction (méthode, ça n'existe pas en C++), et le résultat est déjà retourné à la fonction Main, c'est la variable "auto const tableau".

  8. #8
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2022
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2022
    Messages : 17
    Par défaut
    Citation Envoyé par bacelar Voir le message
    "lire_et_inverser" est déjà une fonction (méthode, ça n'existe pas en C++), et le résultat est déjà retourné à la fonction Main, c'est la variable "auto const tableau".
    Merci !!

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/04/2011, 20h28
  2. Réponses: 3
    Dernier message: 26/10/2010, 22h14
  3. Réponses: 1
    Dernier message: 23/09/2009, 10h35
  4. Moyenne de valeurs contenues dans un fichier .txt
    Par romain$ dans le forum Débuter
    Réponses: 3
    Dernier message: 08/11/2008, 13h57
  5. Réponses: 3
    Dernier message: 29/05/2006, 17h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo