Buenas señores soy nuevo en esto del C++ y venia a ver si alguien me podria ayudar.
Tengo que hacer una busqueda en un archivo .dat (binario) con la estructura siguiente
typedef struct{
char nombre[80];
char variacion[100];
char movimientos[200];
}AperturaBinario;
El caso es que lo abro, lo leo, busco PERO ese no es la verdadera finalidad de la practica ya que la verdadera finalidad es Buscar, guardar la posicion del resultado y luego hacer un acceso aleatorio al archivo con seekg y ahí está mi gran dilema alguien me podria ayudar?
Aqui está la parte del código que busca y muestra por pantalla lo anteriormente buscado
#include <iostream>
#include <cstdlib>
#include <string.h>
#include <fstream>
#include <stdio.h>
using namespace std;
typedef struct{
char nombre[80];
char variacion[100];
char movimientos[200];
}AperturaBinario;
bool encontrado(string b,string a){
unsigned int encontrado=a.find(b);
if (encontrado!=string::npos){
return(true);
encontrado=a.find(b,encontrado+b.length());
}
else{
encontrado=a.find(b,encontrado+b.length());
return(false);
}
}
void leer(){
int numeros=1;
char FicheroCarga[20]="aperturas.dat";
AperturaBinario apertura;
string palabra;
apertura string contenido[3000];
cout<<"introduce una palabra"<<endl;
cin>>palabra;
ifstream fi;
fi.open(FicheroCarga,ios::in);
while(fi.good()){
fi.read((char *)&apertura,sizeof (AperturaBinario));
apertura string = apertura.nombre;
string variaciones = apertura.variacion;
if(encontrado(palabra,nombres)==true){
cout<<numeros<<" "<<nombres<<variaciones<<endl;
numeros++;
}
}
fi.close();
}
int main(){
leer();
}