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 :

Lire un fichier H.264 en C/C++


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Août 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 5
    Par défaut Lire un fichier H.264 en C/C++
    Bonjour,
    J'aimerais savoir comment lire ce type de fichier en C++.
    J'ai utilisé la fonction get() et j'ai mis un compteur pour savoir combien d'octets je lis. J'obtiens un nombre différent de celui que j'obtiens en utilisant la fonction tellg. J'aimerais savoir à quoi cela est du (un caractère de fin peut-être?) et comment faire pour avoir la vraie taille de mon fichier.
    Merci d'avance.

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Par défaut
    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
    // read a file into memory
    #include <iostream>
    #include <fstream>
    using namespace std;
    
    int main () {
      int length;
      char * buffer;
    
      ifstream is;
      is.open ("test.txt", ios::binary );
    
      // get length of file:
      is.seekg (0, ios::end);
      length = is.tellg();
      is.seekg (0, ios::beg);
    
      // allocate memory:
      buffer = new char [length];
    
      // read data as a block:
      is.read (buffer,length);
    
      is.close();
    
      cout.write (buffer,length);
    
      return 0;
    }
    http://www.cplusplus.com/reference/i...istream/tellg/

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 5
    Par défaut
    Merci beaucoup mais j'ai justement utilisé ce code. J'ai ensuite utilisé la fonction gcount pour savoir le nombre de caractere lus et il se trouve que ce nombre est tres inferieur à la valeur retournée par tellg!

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Par défaut
    Sauf si get() lit d'un seul coup l'ensemble du fichier, ça m'étonnerait que is.gcount() vaille autant que is.tellg().

    Note : gcount() ne cumule pas la valeur des get() successifs mais retourne seulement la valeur du dernier en date.

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 5
    Par défaut
    Je veux dire que j'ai teste deux choses:
    • is.gcount() après is.read()
    • un compteur dans une boucle while(is.get(caractere))

    dans les deux cas la valeur que j'ai est bien inferieur à la valeur renvoyée par tellg.

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Par défaut
    As-tu bien ouvert le fichier avec le mode ios::binary ?
    Sinon copie/colle ton code ici qu'on puisse y voir plus clair.

Discussions similaires

  1. [Servlet][EJB]lire un fichier à partir de mon bean
    Par kimausoleil dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 13/02/2004, 14h26
  2. [MFC] lire un fichier en int
    Par Kevgeii dans le forum MFC
    Réponses: 3
    Dernier message: 23/01/2004, 09h32
  3. Réponses: 5
    Dernier message: 11/01/2004, 20h17
  4. Lire un fichier de 50 gb
    Par Maryves dans le forum MFC
    Réponses: 2
    Dernier message: 08/01/2004, 14h08
  5. Lire le fichier du port série
    Par saibe dans le forum Linux
    Réponses: 7
    Dernier message: 09/04/2003, 09h29

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