tengo este codigo con el cual ingreso datos en en un archivo .dat
#include<iostream>
#include<stdio.h>
#include<conio.h>
using namespace std;
int main()
{
FILE* arch;
struct stregistro
{
char codigo[100];
char nombre[10];
char direccion[10];
int edad;
float nota;
}
persona;
arch=fopen("datos.dat","ab");
cout<<"digite los datos: "<<endl;
cout<<"ingrese el codigo"<<endl;
cin>>persona.codigo;
cout<<"nombre: "<<endl;
cin>>persona.nombre;
cout<<"direccion: "<<endl;
cin>>persona.direccion;
cout<<"edad: "<<endl;
cin>>persona.edad;
cout<<"nota: "<<endl;
cin>>persona.nota;
fseek(arch,sizeof(stregistro),SEEK_SET);
fwrite(&persona,sizeof(stregistro),1,arch);
return 0;
}
y necesito ayuda con este codigo deberia ser para sacar los datos del codigo que se ingresa pero no me funciona porfavor ayuda
#include<iostream>
#include<stdio.h>
#include<conio.h>
using namespace std;
int main()
{
FILE* arch;
struct stregistro
{
char codigo[10];
char nombre[10];
char direccion[10];
int edad;
float nota;
}
persona;
int i;
char wcodigo[10];
arch=fopen("datos.dat","r");
if (arch == NULL)
{
printf("\nError de apertura del archivo. \n\n");
}
cout<<"ingrese el codigo: "<<endl;
cin>>wcodigo;
i=0;
while (!feof(arch))
{
fseek(arch,i*sizeof(stregistro),SEEK_SET);
fread(&persona,sizeof(stregistro),1,arch);
if(persona.codigo==wcodigo)
{
cout<<"nombre: "<<persona.nombre<<endl;
cout<<"direccion: "<<persona.direccion<<endl;
cout<<"edad: "<<persona.edad<<endl;
cout<<"nota: "<<persona.nota<<endl;
cout<<endl;
}
i=i+1;
}
return 0;
}