Título: ayuda con un programa de registros porfavor c++ Publicado por: ronms en 16 Enero 2019, 06:13 am 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; } Título: Re: ayuda con un programa de registros porfavor c++ Publicado por: K-YreX en 16 Enero 2019, 16:13 pm Primero, un <struct> es muy recomendable definirla fuera de cualquier función ya sea <main> u otra. Por lo tanto te recomiendo que definas la <struct> antes del <main> en vez de dentro.
Además de eso te recomiendo que si estás programando en C++ (lo que parece que es así por <iostream>), uses también las herramientas para tratamiento de archivos que da C++ (librería: <fstream>) y no las herramientas de C que son las que estás usando ahí. Al margen de eso, pon tu código dentro de etiquetas GeSHi (las puedes seleccionar encima del cuadro de texto cuando escribes/modificas un mensaje), ya que sino se hace más difícil de ver el código. Suerte :-X |