elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ayuda fread
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: ayuda fread  (Leído 6,198 veces)
Gr1nD3r

Desconectado Desconectado

Mensajes: 13


Ver Perfil
ayuda fread
« en: 29 Julio 2010, 20:38 pm »

Código:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

main(){
struct{
char nombre[50];
char direccion[100];
char movil[10];
char email[100];
short int nDia;
short int nMes;
short int nAno;
}persona[100];
int i;
int numeroFicha=0;
int opcion=1;
char textoTemporal[40];
FILE *fichero;

printf("1.- A%adir ficha nueva\n\n",164);
printf("2.- Visualizar nombres de fichas existentes\n\n");
printf("3.- Buscar por nombre\n\n");

while(opcion != 0){
printf("Teclee su opcion: ");
gets(textoTemporal);
sscanf(textoTemporal,"%d",&opcion);

switch(opcion){
case 1:
if(numeroFicha<100){
fichero=fopen("gente.dat","ab");
printf("Nombre: ");
gets(persona[numeroFicha].nombre);
printf("Direccion: ");
gets(persona[numeroFicha].direccion);
printf("Telefono movil: ");
gets(persona[numeroFicha].movil);
printf("Email: ");
gets(persona[numeroFicha].email);
printf("Dia de nacimiento: ");
gets(textoTemporal);
sscanf(textoTemporal,"%d",&persona[numeroFicha].nDia);
printf("Mes de nacimiento: ");
gets(textoTemporal);
sscanf(textoTemporal,"%d",&persona[numeroFicha].nMes);
printf("Año de nacimiento: ");
gets(textoTemporal);
sscanf(textoTemporal,"%d",&persona[numeroFicha].nAno);
fwrite(persona[numeroFicha].nombre,1,sizeof(persona[numeroFicha].nombre),fichero);
fwrite(persona[numeroFicha].direccion,1,sizeof(persona[numeroFicha].direccion),fichero);
fwrite(persona[numeroFicha].movil,1,sizeof(persona[numeroFicha].movil),fichero);
fwrite(persona[numeroFicha].email,1,sizeof(persona[numeroFicha].email),fichero);
fwrite(&persona[numeroFicha].nDia,sizeof(persona[numeroFicha].nDia),1,fichero);
fwrite(&persona[numeroFicha].nMes,sizeof(persona[numeroFicha].nMes),1,fichero);
fwrite(&persona[numeroFicha].nAno,sizeof(persona[numeroFicha].nAno),1,fichero);
numeroFicha++;
fclose(fichero);
}
else{
printf("Limite de fichas alcanzado");
}
break;
case 2:
fichero=fopen("gente.dat","rb");
for(i=0;i<numeroFicha;i++){
fread(persona[i].nombre,1,sizeof(persona[i].nombre),fichero);
puts(persona[i].nombre);
fread(persona[i].direccion,1,sizeof(persona[i].direccion),fichero);
fread(persona[i].movil,1,sizeof(persona[i].movil),fichero);
fread(persona[i].email,1,sizeof(persona[i].email),fichero);
fread(&persona[i].nDia,sizeof(persona[i].nDia),1,fichero);
fread(&persona[i].nMes,sizeof(persona[i].nMes),1,fichero);
fread(&persona[i].nAno,sizeof(persona[i].nAno),1,fichero);
}
fclose(fichero);
break;
}
}
}

Alguien sabe por que no se muestran los nombres de las fichas por pantalla cuando escojo la 2ª opcion???
gracias


En línea

bizco


Desconectado Desconectado

Mensajes: 698


Ver Perfil
Re: ayuda fread
« Respuesta #1 en: 29 Julio 2010, 20:40 pm »

veo visiones? me salia el codigo en una marquesina de lado a lado  :o


En línea

.:BlackCoder:.


Desconectado Desconectado

Mensajes: 388


Cada dia C++!!


Ver Perfil
Re: ayuda fread
« Respuesta #2 en: 29 Julio 2010, 20:42 pm »

A mi tambien  :xD igual no manejo archivos en C...
En línea

"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja



Gr1nD3r

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: ayuda fread
« Respuesta #3 en: 29 Julio 2010, 20:44 pm »

jajajaja no veis visiones xdd. Lo puse sin querer en un marco xd

Bueno, alguna solucion??
En línea

Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: ayuda fread
« Respuesta #4 en: 29 Julio 2010, 20:47 pm »

veo visiones? me salia el codigo en una marquesina de lado a lado  :o

A mí no me sale ninguna marquesina :-\

Sobre el código:

  • Declaras main() que no es standard. Pásate por acá.
  • Es lógico que no vaya la segunda opción. Yo por ejemplo, no tengo creado este fichero, por lo tanto caigo en un bucle infinito. Haz una opción para cuando no tengas el fichero, vuelva a main().

Saludos :P

Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.
« Última modificación: 26 Agosto 2010, 00:32 am por Horricreu » En línea

Gr1nD3r

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: ayuda fread
« Respuesta #5 en: 29 Julio 2010, 20:55 pm »

Ya esta solucionado. Los datos se guardaban en el fichero pero no el numero de fichas
xd.
Al usar fopen("gente.dat","wb"); si no tienes el fichero se crea automaticamente

saludos
En línea

Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: ayuda fread
« Respuesta #6 en: 29 Julio 2010, 20:56 pm »

Ya esta solucionado. Los datos se guardaban en el fichero pero no el numero de fichas
xd

Igualmente mírate mi respuesta, que tienes errores graves ;)

Saludos :P
En línea

Gr1nD3r

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: ayuda fread
« Respuesta #7 en: 29 Julio 2010, 20:57 pm »

K error grave?
En línea

Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: ayuda fread
« Respuesta #8 en: 29 Julio 2010, 21:14 pm »

K error grave?

Te vuelvo a repetir que mires mi primera respuesta.

Saludos :P
En línea

Gr1nD3r

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: ayuda fread
« Respuesta #9 en: 29 Julio 2010, 21:19 pm »

Como seria la declaracion standar de main??
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
fread y fwrite con clases
Programación C/C++
newone 4 4,884 Último mensaje 23 Junio 2011, 23:40 pm
por newone
Usos fwrite, fread
Programación C/C++
diegoCmC 4 5,580 Último mensaje 13 Septiembre 2012, 21:42 pm
por diegoCmC
Ayuda con basura en fread
Programación C/C++
harry_the_blogger 3 2,289 Último mensaje 2 Abril 2016, 15:30 pm
por class_OpenGL
fread
Programación C/C++
saltimbanki 1 2,873 Último mensaje 21 Diciembre 2020, 20:27 pm
por Eternal Idol
fread me muestra algunos hexadecimales de forma incorrecta
Programación C/C++
otroWeyMas.nasm 3 2,626 Último mensaje 2 Febrero 2022, 19:31 pm
por Eternal Idol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines