Lecture d'un fichier txt et affichage (SOS)

Résolu
malouve Messages postés 56 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 20 juillet 2010 - 18 juin 2007 à 16:35
malouve Messages postés 56 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 20 juillet 2010 - 19 juin 2007 à 09:18
bonjour,
j'ai 2 gros pbs
le premier est que je n'arrive pas à lire correctement un fichier txt qui se presente sous la forme d'un tableau à 9 colonnes et 201 lignes
les valeurs st affichés mais de manière aléatoire ( la lecture se fait à la 39ème ligne)
voici le code utilisé:

 string file ="matS.txt";
    string data = " ";
    ifstream mfile(file.c_str());//ouverture du fichier
    if(!mfile)data = "erreur";
      else
      {stringstream buffer;
        // lecture de tout le fichier
        buffer << mfile.rdbuf();
        // fermeture du fichier
        mfile.close();
        // recuperation du contenu dans un string
        data = buffer.str();
    }
    cout << data << endl;

SVP dites moi d'ou vient le pb car je ne comprends pas
 je vous donne quelques lignes de mon fichier txt pr ke vous puissez comprendre

1.000000e9      5.603425e-3      -6.490413e-2      9.783111e-1      -1.740100e-1      9.758739e-1      -1.826534e-1      -1.891823e-2      -6.229049e-2
1.085000e9      6.921810e-3      -7.092675e-2      9.727001e-1      -1.878764e-1      9.719810e-1      -1.965761e-1      -2.128138e-2      -6.827045e-2
1.170000e9      7.692728e-3      -7.763414e-2      9.692169e-1      -2.018745e-1      9.675217e-1      -2.105517e-1      -2.501053e-2      -7.557128e-2
1.255000e9      8.317075e-3      -8.545595e-2      9.647463e-1      -2.153868e-1      9.622218e-1      -2.243890e-1      -2.791875e-2      -8.142246e-2

merc de bien vouloir m'aider car je débute en C++

2 réponses

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
18 juin 2007 à 21:34
ifstream mfile("matS.txt");

if(mfile.fail()) cout << "erreur" << endl;
else {
    char *data;
    int size;

    // récupère la taille du fichier
    mfile.seekg(0, ios::end);
    size = mfile.tellg();
    mfile.seekg(0, ios::beg);

    // alloue la mémoire pour data
    data = new char[size+1];

    // lecture de tout le fichier
    mfile.read(data, size);
    // ajout du 0 de fin de chaine
    data[mfile.gcount()] = 0;
     // fermeture du fichier
     mfile.close();

    cout << data << endl;
}

C++ (@++)<!--
3
malouve Messages postés 56 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 20 juillet 2010
19 juin 2007 à 09:18
merci pr ce coup de main j'arrive à afficher tout mon fichier cependant j'aurai voulu tenir compte de la tabulation entre chaque valeur. Au fait je dois afficher le tracé de ces points  (1 point pour 2 colonnes: partie réelle et partie imaginaire). Pensez vous  que c'est possible de le faire si mon fichier est lu ligne par ligne sans séparation.
encore merci
0
Rejoignez-nous