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

SL & STL C++ Discussion :

Lire des fichiers texte (des chaines de caracteres) ifstream


Sujet :

SL & STL C++

  1. #1
    Membre actif Avatar de jamesleouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 522
    Points : 243
    Points
    243
    Par défaut Lire des fichiers texte (des chaines de caracteres) ifstream
    Bonjour a tous,
    j'ai fais un programme pour lire des entiers dans un programme le problème c'est que je n'arrive pas a l'adapter pour lire des chaines de caractère ou des string a la limite (ca serait meme mieux)

    Voici le prog d'origine pour les entiers :


    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    // StreamInput - exemple simple de lecture à partir 
    //               d'un fichier en utilisant fstream
     
    #include <cstdio>
    #include <cstdlib>
    #include <iostream>
    #include <string.h>
    #include <fstream.h>
     
     
    using namespace std;
     
    ifstream* openFile()
    {
        ifstream* pFileStream = 0;
        for(;;)
        {
            // ouvre le fichier spécifié par l'utilisateur
            char fileName[80];
            cout << "Entrez le nom d'un fichier contenant les chaînes" 
                 << endl;
            cin >> fileName;
     
            // ouvre le fichier en lecture ; ne le crée pas
            // s'il n'existe pas encore
            pFileStream = new ifstream(fileName);
            if (pFileStream->good())
            {
                break;
            }
            cerr << "Impossible d'ouvrir " << fileName << endl;
            delete pFileStream;
        }
        return pFileStream;
    }
     
    int main(int nNumberofArgs, char* pszArgs[])
    {
    long tablo[500];
    long cpt=0;
        // demande un canal pour l'accès aux fichier
        ifstream* pFileStream = openFile();
             ofstream my("boby.txt",ios::app);
        // arrête s'il n'y a plus de données dans le fichier
        while (!pFileStream->eof())
        {
            // lit une valeur
            int nValue = 0;
            (*pFileStream) >> nValue;
     
            // stoppe si la lecture échoue (probablement parce que
            // l'entrée suivant n'est pas un entier, ou parce que
            // nous avons trouvé une nouvelle ligne sans rien après
            if (pFileStream->fail())
            {
                break;
            }
     
            // sort la valeur qui vient d'être lue
            cout << nValue << endl;
            my <<nValue<<" ";
            tablo[cpt]=nValue;
            cpt++;
        }
     
        for(long i=0;i<9;i++){
        cout <<tablo[i]<<endl;
        }
     
        system("pause");
        return 0; 
    }
    Je pensais qu'il suffisait de changer le type du tableau :tablo
    mais ca ne marche pas puisque si il trouve le chiffre 1 par exemple, et bien il affichera le caractère de valeur (ascii), de plus je crois que ce programme ne lis que le premier char de chaque ligne... ce qui pose problème.
    Merci

    Ben

  2. #2
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 280
    Points : 11 020
    Points
    11 020
    Par défaut
    C'est bien que tu aies résolu ton problème. Cependant je détecte un certain nombre d'erreurs (eof, cin>>static_array) et de maladresses (new ifstream).

    Cf la FAQ pour les premiers. Pour le dernier c'est se débarrasser du RAII (cf FAQ) qui est inhérent aux fichiers C++ pour se retrouver avec un code moins robuste.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. enregistrement des matrices dans des fichier text
    Par fleurrouge dans le forum Signal
    Réponses: 1
    Dernier message: 22/05/2009, 20h23
  2. [Débutant] Probleme d'importation des données à partir des fichiers textes
    Par bahja29 dans le forum MATLAB
    Réponses: 3
    Dernier message: 12/03/2009, 16h28
  3. Réponses: 0
    Dernier message: 11/02/2008, 11h37
  4. Lire le format d'images PPM : de la lecture binaire ou texte des fichiers
    Par cladsam dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 08/05/2007, 12h35
  5. Réponses: 5
    Dernier message: 21/02/2007, 16h12

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