ErrorDeSintaxis

Pequeños fragmentos de código fuente en distintos lenguajes de programación, agrupados por categorías.

Puedes buscar entre los fuentes existentes, o aportar los tuyos.

C++: Leer de un fichero binario

Leer un fragmento de un fichero binario (cabecera MP3) usando C++

Lenguaje: C++ (compilador: G++ 4.5.2 Linux)

Categoría: Básico

// Fuente procedente de ErrorDeSintaxis.es  
// Leer un fragmento de un fichero binario (cabecera  
//  MP3) usando C++  
// Compilador: G++ 4.5.2 Linux  
// Nivel: Básico  
// Disponible desde 29/07/2011  
// Aportado por Nacho  
// Autor original: Nacho Cabanes  
// Web original: http://www.aprendeaprogramar.com/mod/resource/view.php?id=345  

#include <iostream>
#include <fstream>
 
using namespace std;
 
int main () {
 
    fstream ficheroMp3;
    char marca[3];
 
    ficheroMp3.open ("ejemplo.mp3", ios::in | ios::binary);
    // Compruebo si he podido abrir
    if (ficheroMp3.is_open()) {
        // Me coloco donde empieza el ID3 TAG
        ficheroMp3.seekg(-128, ios::end);
        // Leo 3 bytes
        ficheroMp3.read(marca, 3);
        // Digo si day datos o no
        if ((marca[0] != 'T') || (marca[1] != 'A') || (marca[2] != 'G'))
            cout << "Sin datos de artista" << endl;
        else
            cout << "Parece un MP3 con ID3 TAG" << endl;
        // Finalmente, cierro
        ficheroMp3.close();
    }
    // Si no he podido abrir, aviso
    else cout << "Fichero inexistente" << endl;
    return 0;
 
}