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