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 :

implementation d'un Buffer Circulaire


Sujet :

C++

  1. #1
    Membre confirm�
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    106
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Par d�faut implementation d'un Buffer Circulaire
    Bonjour � tous;
    Je souhaite impl�menter un buffer circulaire. J'ouvre un fichier et je stoke les donn�es dans un vecteur. Je souhaite mettre ces donn�es dans un autre tableau de taille fixe en deux �tapes:
    1 - je dois mettre des elments dans le buffer s'il n'est pas plein.
    2 - si le buffer est plein, je commence par �craser le premier �lement par la donn�e qui vient d'arriver.

    Voici le code que j'ai essay� de faire;
    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
     
    #include <iostream>
    #include <fstream>
    #include<string>
    #include<vector> 
    using namespace std;
     
    typedef vector<float> Tableau;
     
     
    int main()
    {
    	Tableau tab;
    	float x;
    	int TailleBuffer = 100;
    	float Buffer[100];
    	int i;
    	ifstream data("D:\\SignauxTexte\\ecg.txt",ios::in); //ouverture du fichier en lecture;
        i=0;
     
       while(true)
    {
       data >> x;
     
       // test si fin de fichier atteinte
       if(data.eof() == true)
          break; 
       // ajout de la donnée dans un tableau
        tab.push_back(x);
    	for(int n=0; n<tab.size(); ++n)
    	{
    		if (tab.size()<TailleBuffer) // on compare la taille du tableau à la taille du Buffer		
    		{
    			Buffer[n]=tab[n]; // on met l'element tab[n] dans la case de buffer correspondant;
     
    		}
    		else
    		{	
    			Buffer[(i-1)%TailleBuffer] = tab[i-1];	// on ecrase l' élement (i-1)%TailleBuffer par le nouveau element
     
     
    		}
    		cout<<scientific;
    		cout<<i<<" "<< x <<" "<<Buffer[n]<<" "<<tab[i-1]<<endl;
     
    	}
     
     
       i++; //on compte le nombre de lignes
    }
       data.close();		
       return 0;
    }
    A l'ex�cution j'obtiens une seule valeur dans mon buffer, et qui de plus est fausse, car non contenue dans le fichier de lecture.
    J'arrive par contre � stocker correctement les donn�es dans le tableau. mais je ne sais pas exactement comment mettre ces donn�es dans le buffer.

    Merci d'avance pour votre aide.

  2. #2
    Membre chevronn� Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Par d�faut
    Il est un peu tard l�, mais je ne comprend pas trop le role du for.
    Pour quoi ne pas utilise un index que tu incremente a chaque ajout, puis tu test si cet index n'est pas au dessus de la taille total du tableau, si oui tu repard a z�ro !

  3. #3
    Membre �m�rite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    D�tails du profil
    Informations personnelles :
    �ge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par d�faut
    il y a une implementation dans boost si ca interesse quelqu'un...

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Buffer Circulaire C#
    Par apelleti dans le forum C#
    R�ponses: 2
    Dernier message: 19/05/2008, 15h19
  2. R�ponses: 12
    Dernier message: 27/03/2008, 22h01
  3. Liaison s�rie, Buffer Circulaire ?
    Par innosang dans le forum Ubuntu
    R�ponses: 2
    Dernier message: 26/12/2007, 21h52
  4. Cree un buffer circulaire
    Par caesarvanou dans le forum Algorithmes et structures de donn�es
    R�ponses: 11
    Dernier message: 06/06/2006, 10h59
  5. buffer circulaire
    Par fumble dans le forum C
    R�ponses: 34
    Dernier message: 10/03/2005, 08h51

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