Foros del Web » Programación para mayores de 30 ;) » C/C++ »

fichero binario que calcula la media

Estas en el tema de fichero binario que calcula la media en el foro de C/C++ en Foros del Web. Hola, el siguiente ejercicio consiste en crear un fichero binario e ir almacenando en él los N registros con los apellidos, el nombre y la ...
  #1 (permalink)  
Antiguo 31/03/2010, 04:43
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 1 mes
Puntos: 0
fichero binario que calcula la media

Hola, el siguiente ejercicio consiste en crear un fichero binario e ir almacenando en él los N registros con los apellidos, el nombre y la nota de los alumnos. Para ello realizamos la operación de escritura sobre el fichero binario para guardar esos datos. Una vez hecho esto hay que hacer la operación de lectura sobre el fichero binario para calcular la media y saber los alumnos que estań por encima de la media. a la hora de compilar tiene que salir los apellidos, el nombre y la nota de aquellos alumnos que están por encima de la media.

Código C:
Ver original
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. struct alumno{
  5.        char nom[20];
  6.        char apell1[50];
  7.        char apell2[50];
  8.        double nota;
  9. };
  10. #define LEE_CAD(c,t){int i=0;\
  11.         c=getchar();\
  12.              while((c=='\n')||(c=='\t')) c=getchar();\
  13.              while((c!='\n')&&(i<(t-1))){\
  14.                 i++;\
  15.                    c=getchar();}\
  16.              c='\0';}
  17.  
  18. #define lee_char(c) { c=getchar();\
  19.            while((c==' ')||(c=='\n'))\
  20.             c=getchar();}            
  21.  
  22. int main(){
  23.  
  24.    void alta_alumno(const char[]);
  25.    double media(const char[]);
  26.    void mostrar_mayores_media(const char[], double);
  27.  
  28.    alta_alumno("notas.txt");
  29.    mostrar_mayores_media("notas.txt", media("notas.txt"));
  30.    exit(0);
  31. }
  32.  
  33. void alta_alumno(const char nom_fich[]){
  34.  
  35.    FILE *pf;
  36.    char otro;
  37.    struct alumno al;
  38.  
  39.    if((pf = fopen(nom_fich, "wb")) == NULL){
  40.        perror("Error al abrir el fichero alumnos\n");
  41.        exit(1);
  42.    }
  43.  
  44.    do{
  45.       printf("Dame los dos apellidos, nombre y nota:");
  46.       scanf("%49s %49s %19s %lf", al.apell1, al.apell2, al.nom, &al.nota);
  47.  
  48.       fwrite(&al, sizeof(al), 1, pf);
  49.  
  50.       printf("¿Otro alumno?(s/n) ");
  51.       lee_char(otro);
  52.    }while((otro == 's') || (otro == 'S'));
  53.  
  54.    if(fclose(pf) == EOF){
  55.       printf("Error al cerrar el fichero de alumnos\n");
  56.       exit(2);
  57.    }
  58. }
  59.  
  60. double media(const char nom_fich[]){
  61.  
  62.    FILE *pf;
  63.    double res=0.0;
  64.    int num_alumnos=0;
  65.    struct alumno al;
  66.  
  67.    fread(&al, sizeof(al), 1, pf);
  68.  
  69.    if((pf = fopen(nom_fich, "rb")) == NULL){
  70.        perror("Error al abrir el fichero de alumnos\n");
  71.        exit(3);
  72.    }
  73.    while(!feof(pf)){
  74.        res=res + al.nota;
  75.        num_alumnos++;
  76.        fread(&al, sizeof(al), 1, pf);
  77.    }
  78.    fclose(pf);
  79.    res=res/(double)num_alumnos;
  80.    return(res);
  81. }
  82.  
  83. void mostrar_mayores_media(const char nom_fich[], double m){
  84.  
  85.    FILE *pf;
  86.    struct alumno al;
  87.    double media(const char[]);
  88.    m=media(nom_fich);
  89.  
  90.    if((pf = fopen(nom_fich, "rb")) == NULL){
  91.       perror("Error al abrir el fichero de alumnos\n");
  92.       exit(4);
  93.    }
  94.    fread(&al, sizeof(al), 1, pf);
  95.    while(!feof(pf)){
  96.      if(al.nota >= m)
  97.         printf("%s %s %s %.2lf\n", al.apell1, al.apell2, al.nom, al.nota);
  98.  
  99.      fread(&al, sizeof(al), 1, pf);
  100.    }
  101.    fclose(pf);
  102. }

A la hora de compilarlo cuando me pregunta ¿Otro alumno? y pongo que no me da fallo de segmentación. Alguien puede decirme por qué me da este tipo de fallo?. Gracias.
  #2 (permalink)  
Antiguo 31/03/2010, 11:26
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: fichero binario que calcula la media

La funcion media() recibe un nombre de archivo, pero no hace nada con el.
Recomiendo que abras el archivo ahi tambien (antes de usar fread), sino la funcion fread() fracasará.

Última edición por CalgaryCorpus; 01/04/2010 a las 04:35
  #3 (permalink)  
Antiguo 01/04/2010, 04:22
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: fichero binario que calcula la media

Hola, he hecho lo que me has dicho y cuando lo compilo funciona correctamente, pero cuando intento abrir el fichero binario notas.txt me aparece un rectángulo en la parte superior de la pantalla que dice:

No se pudo abrir el archivo /home/mikel/Escritorio/notas.txt.

gedit no ha podido detectar la codificación de caracteres.
Compruebe que no está intentando abrir un archivo binario.
Seleccione una codificación de caracteres desde el menú e intente de nuevo.

Codificación de caracteres: Configuración regional actual (UTF-8).

¿Por qué no me deja ver el contenido del fichero binario "notas.txt"?. Gracias.
  #4 (permalink)  
Antiguo 01/04/2010, 04:34
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: fichero binario que calcula la media

Podrias mostrar el codigo de la funcion media() para descartar las modificaciones que has hecho?
  #5 (permalink)  
Antiguo 01/04/2010, 06:21
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: fichero binario que calcula la media

Este es el código:

Código C:
Ver original
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. struct alumno{
  5.        char nom[20];
  6.        char apell1[50];
  7.        char apell2[50];
  8.        double nota;
  9. };
  10. #define LEE_CAD(c,t){int i=0;\
  11.         c=getchar();\
  12.              while((c=='\n')||(c=='\t')) c=getchar();\
  13.              while((c!='\n')&&(i<(t-1))){\
  14.                 i++;\
  15.                    c=getchar();}\
  16.              c='\0';}
  17.  
  18. #define lee_char(c) { c=getchar();\
  19.            while((c==' ')||(c=='\n'))\
  20.             c=getchar();}            
  21.  
  22. int main(){
  23.  
  24.    void alta_alumno(const char[]);
  25.    double media(const char[]);
  26.    void mostrar_mayores_media(const char[], double);
  27.  
  28.    alta_alumno("notas.txt");
  29.    mostrar_mayores_media("notas.txt", media("notas.txt"));
  30.    exit(0);
  31. }
  32.  
  33. void alta_alumno(const char nom_fich[]){
  34.  
  35.    FILE *pf;
  36.    char otro;
  37.    struct alumno al;
  38.  
  39.    if((pf = fopen(nom_fich, "wb")) == NULL){
  40.        perror("Error al abrir el fichero alumnos\n");
  41.        exit(1);
  42.    }
  43.  
  44.    do{
  45.       printf("Dame los dos apellidos, nombre y nota:");
  46.       scanf("%49s %49s %19s %lf", al.apell1, al.apell2, al.nom, &al.nota);
  47.  
  48.       fwrite(&al, sizeof(al), 1, pf);
  49.  
  50.       printf("¿Otro alumno?(s/n) ");
  51.       lee_char(otro);
  52.    }while((otro == 's') || (otro == 'S'));
  53.  
  54.    if(fclose(pf) == EOF){
  55.       printf("Error al cerrar el fichero de alumnos\n");
  56.       exit(2);
  57.    }
  58. }
  59.  
  60. double media(const char nom_fich[]){
  61.  
  62.    FILE *pf;
  63.    if(pf = fopen(nom_fich, "rb"));
  64.    double res=0.0;
  65.    int num_alumnos=0;
  66.    struct alumno al;
  67.  
  68.    fread(&al, sizeof(al), 1, pf);
  69.  
  70.    if((pf = fopen(nom_fich, "rb")) == NULL){
  71.        perror("Error al abrir el fichero de alumnos\n");
  72.        exit(3);
  73.    }
  74.    while(!feof(pf)){
  75.        res=res + al.nota;
  76.        num_alumnos++;
  77.        fread(&al, sizeof(al), 1, pf);
  78.    }
  79.    fclose(pf);
  80.    res=res/(double)num_alumnos;
  81.    return(res);
  82. }
  83.  
  84. void mostrar_mayores_media(const char nom_fich[], double m){
  85.  
  86.    FILE *pf;
  87.    struct alumno al;
  88.    double media(const char[]);
  89.    m=media(nom_fich);
  90.  
  91.    if((pf = fopen(nom_fich, "rb")) == NULL){
  92.       perror("Error al abrir el fichero de alumnos\n");
  93.       exit(4);
  94.    }
  95.    fread(&al, sizeof(al), 1, pf);
  96.    while(!feof(pf)){
  97.      if(al.nota >= m)
  98.         printf("%s %s %s %.2lf\n", al.apell1, al.apell2, al.nom, al.nota);
  99.  
  100.      fread(&al, sizeof(al), 1, pf);
  101.    }
  102.    fclose(pf);
  103. }
  #6 (permalink)  
Antiguo 01/04/2010, 07:40
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: fichero binario que calcula la media

Sin revisar muchos detalles, ahora la funcion media() abre el archivo 2 veces. Esta bien eso?
  #7 (permalink)  
Antiguo 01/04/2010, 14:34
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: fichero binario que calcula la media

Hola, en el primer código que publiqué no entiendo lo que quieres decir con la función media() recibe un nombre de archivo, pero no hace nada con el.
Recomiendo que abras el archivo ahí también (antes de usar fread), sino la funcion fread() fracasará.

A continuación te muestro la función media para que me digas si está bien o mal, en caso de estar mal puedes indicarme por favor dónde debo hacer la corrección. Gracias.


Código C:
Ver original
  1. #
  2. double media(const char nom_fich[]){
  3. #
  4.  
  5. #
  6.    FILE *pf;
  7. #
  8.    double res=0.0;
  9. #
  10.    int num_alumnos=0;
  11. #
  12.    struct alumno al;
  13. #
  14.  
  15. #
  16.    fread(&al, sizeof(al), 1, pf);
  17. #
  18.  
  19. #
  20.    if((pf = fopen(nom_fich, "rb")) == NULL){
  21. #
  22.        perror("Error al abrir el fichero de alumnos\n");
  23. #
  24.        exit(3);
  25. #
  26.    }
  27. #
  28.    while(!feof(pf)){
  29. #
  30.        res=res + al.nota;
  31. #
  32.        num_alumnos++;
  33. #
  34.        fread(&al, sizeof(al), 1, pf);
  35. #
  36.    }
  37. #
  38.    fclose(pf);
  39. #
  40.    res=res/(double)num_alumnos;
  41. #
  42.    return(res);
  43. #
  44. }
  #8 (permalink)  
Antiguo 01/04/2010, 15:07
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: fichero binario que calcula la media

Fijate que tu funcion tiene una coleccion de variables al inicio y la primera instruccion es:

fread(&al, sizeof(al), 1, pf);

de que archivo esta leyendo fread ?

Fijate que la siguiente operacion es abrir el archivo. o sea, abres el archivo despues de leer de el. Hay un problema de orden ahi. Y en la correccion abriste el archivo antes de hacer el fread y luego lo volviste a abrir.

Última edición por CalgaryCorpus; 02/04/2010 a las 05:01
  #9 (permalink)  
Antiguo 02/04/2010, 04:55
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: fichero binario que calcula la media

Hola, quedaría así ¿no? Me ha quedado más clara tu explicación.

Código C:
Ver original
  1. double media(const char nom_fich[]){
  2.  
  3.    FILE *pf;
  4.    double res=0.0;
  5.    int num_alumnos=0;
  6.    struct alumno al;
  7.  
  8.    if((pf = fopen(nom_fich, "rb")) == NULL){
  9.        perror("Error al abrir el fichero de alumnos\n");
  10.        exit(3);
  11.    }
  12.    fread(&al, sizeof(al), 1, pf);
  13.    while(!feof(pf)){
  14.        res=res + al.nota;
  15.        num_alumnos++;
  16.        fread(&al, sizeof(al), 1, pf);
  17.    }
  18.    fclose(pf);
  19.    res=res/(double)num_alumnos;
  20.    return(res);
  21. }

El problema que tengo es cuando voy al escritorio e intento abrir el fichero binario alumnos.dat que he creado no me deja y me aparece el siguiente mensaje: No se pudo mostrar «/home/mikel/Escritorio/alumnos.dat». El archivo es de un tipo desconocido. Tu sabrías decirme por qué me pone esto y cómo puedo solucionarlo para que me deje ver el contenido del fichero binario. Gracias.
  #10 (permalink)  
Antiguo 02/04/2010, 05:05
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: fichero binario que calcula la media

Voy a suponer que trabajas en Windows, y que este detecta el tipo de archivos por el nombre que le pones, mas bien, por las extensiones (en este caso ".dat"). Que tal si pruebas renombrarlo a datos.txt solo para probar que es una restriccion del sistema operativo?

Por otro lado, escribiste un float al lado de 3 strings, ese float no lo escribiste como texto, sino la representacion binaria del mismo. No esperes ver un numero alli.
  #11 (permalink)  
Antiguo 02/04/2010, 10:20
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: fichero binario que calcula la media

He intentado renombrarlo con el nombre datos.txt como me has dicho, pero sigo sin poder ver el contenido del fichero. Trabajo en Ubuntu, por otra parte puedes explicarme eso de la representación binaria es que no lo entiendo, simplemente utilizo un double para la nota. Lo normal sería que al abrir el fichero binario pudiera ver los apellidos, el nombre y la nota de los alumnos ¿no?. De hecho este mismo ejercicio lo he hecho en un fichero de texto, pero sin utlizar registros ya que éstos sólo se utilizan en los ficheros binarios y al abrir el fichero puedo ver el contenido. ¿Por qué al tratarse de un fichero binario no puedo?, no lo logro entender. Gracias.
  #12 (permalink)  
Antiguo 02/04/2010, 11:38
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: fichero binario que calcula la media

Si es ubuntu, entonces seria valioso que indicaras que cosa aparece cuando lo intentas ver usando la linea de comandos.

Por ejemplo, que arroja cuando haces

ls -l datos.dat

que arrojas cuando haces

cat datos.dat

(por supuesto cuando estas en el directorio donde ese archivo está).
  #13 (permalink)  
Antiguo 02/04/2010, 13:18
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: fichero binario que calcula la media

Cuando hago un cat de alumnos.dat me sale esto:

Cristinah���Ferrer�����pf[��Julian����� @Sarainah���Fernandez����pf[��Mejia����33333�#@Anainah���Lopezdez����pf[��Perez����{�G�z

¿Por qué ocurre esto?. Gracias
  #14 (permalink)  
Antiguo 02/04/2010, 14:13
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: fichero binario que calcula la media

Claramente, el archivo existe y tiene datos. No se como lo intentaste abrir antes, pero un archivo binario puede mostrar lo que quiera cuando le haces cat. Lo importante, para leerlo, es usar el mismo "formato" por decirlo de alguna forma, que como se escribio. Si quieres leer el archivo y mostrar los datos que tiene de una manera mas "humana", haz un programa, que lea cada registro y muestre los datos en el orden y formato que te interesa.
  #15 (permalink)  
Antiguo 03/04/2010, 04:28
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: fichero binario que calcula la media

Yo lo que quiero es incluir en el código que he hecho una instrucción que me permita ver el contenido del fichero binario, he probado con fprintf y fscanf, pero no me ha funcionado se ve que sólo funciona con ficheros de texto. Por favor, dame una solución concreta a mi problema si puedes, estoy muy perdida no se cómo hacerlo. Gracias.
  #16 (permalink)  
Antiguo 03/04/2010, 04:48
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: fichero binario que calcula la media

El codigo que ya tienes ( mostrar_mayores_media() ) recorre el archivo y muestra algunos registros. Elimina la lógica de ahi y veras el archivo completo.
  #17 (permalink)  
Antiguo 03/04/2010, 05:43
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: fichero binario que calcula la media

Lo único que quiero saber es cómo puedo ver el contenido del fichero binario y poder visualizar los registros que he ido introduciendo de teclado uno a uno, de forma que se añadan uno debajo del otro. Si hay alguna forma de hacerlo dímelo, por favor. Gracias por tu paciencia.
  #18 (permalink)  
Antiguo 03/04/2010, 05:51
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: fichero binario que calcula la media

Lo que dices que quieres hacer, la funcion mostrar_mayores_media() ya lo esta haciendo, solo que esta usando logica para mostrar algunos y otros no. Elimina la logica de alli y tendras todo el contenido del archivo. Recortar y pegar.
  #19 (permalink)  
Antiguo 03/04/2010, 06:15
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: fichero binario que calcula la media

No entiendo lo que quieres decir, ¿puedes explicarte mejor, por favor?
  #20 (permalink)  
Antiguo 03/04/2010, 07:15
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: fichero binario que calcula la media

Te propongo algo: Explica con palabras, linea por linea, lo que hace la funcion mostrar_mayores_media() que tu mismo escribiste. En medio de esa explicacion, recortando y pegando, tendras lo que buscas.
  #21 (permalink)  
Antiguo 03/04/2010, 10:24
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: fichero binario que calcula la media

Sigo sin entender lo que dices.
  #22 (permalink)  
Antiguo 03/04/2010, 11:37
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: fichero binario que calcula la media

Hiciste la funcion mostrar_mayores_media()? Si es asi, deberias ser capaz de hacer un recorte de ella que solo lea el archivo y muestre lo que quieres.
  #23 (permalink)  
Antiguo 03/04/2010, 13:40
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: fichero binario que calcula la media

He añadido la función mostrar_todo al final del programa para que me muestre todos los registros, pero cuando me pregunta ¿otro alumno? y pongo no se repiten los datos de un mismo alumno sin parar. ¿Qué estoy haciendo mal?.

Primero la defino en el main()

Código C:
Ver original
  1. int main(){
  2.  
  3.    void alta_alumno(const char[]);
  4.    double media(const char[]);
  5.    void mostrar_mayores_media(const char[], double);
  6.    void mostrar_todo(const char[]);
  7.    alta_alumno("alumnos.dat");
  8.    mostrar_mayores_media("alumnos.dat", media("alumnos.dat"));
  9.    mostrar_todo("alumnos.dat");
  10.    exit(0);
  11. }

A continuación te muestro dicha función:

Código C:
Ver original
  1. void mostrar_todo(const char nom_fich[]){
  2.  
  3.     FILE *pf;
  4.     struct alumno al;
  5.  
  6.     rewind(pf); /*Se coloca al principio del fichero*/
  7.     fread(&al, sizeof(al), 1, pf);
  8.     while(!feof(pf)){
  9.           printf("%s %s %s %.2lf\n", al.apell1, al.apell2, al.nom, al.nota);
  10.           fread(&al, sizeof(al), 1, pf);
  11.     }
  12. }
  #24 (permalink)  
Antiguo 03/04/2010, 14:47
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: fichero binario que calcula la media

La nueva funcion mostrar_todo() no considera el nombre del archivo que pasas como parametro.
Abre el archivo, tal como lo haces en las otras funciones. Lee y cierralo al final, como lo haces en las otras funciones.
  #25 (permalink)  
Antiguo 03/04/2010, 17:09
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: fichero binario que calcula la media

Puedes decirme por qué razón al hacer un cat de alumnos.dat salen estos caracteres raros.

Cristinah���Ferrer�����pf[��Julian����� @Sarainah���Fernandez����pf[��Mejia����33333�#@Anainah���Lopezdez����pf[��Perez����{�G�z
  #26 (permalink)  
Antiguo 03/04/2010, 17:21
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: fichero binario que calcula la media

Ve el comentario #14. En el fondo estas mostrando como un string (o cualquier otro tipo de dato) de C++ se almacena en memoria.
  #27 (permalink)  
Antiguo 04/04/2010, 05:33
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: fichero binario que calcula la media

Respecto a la función mostrar_todo cuando lo compilo me salen los alumnos que están por encima de la media que en este caso son Cristina y Ana y después los datos de todos los alumnos:

Ferrer Julian Cristina 9.85
Fernandez Gil Ana 8.75
Ferrer Julian Cristina 9.85
Fernandez Gil Ana 8.75
Perez Mejia Marta 6.22

Cuando hago un cat de alumnos.dat me sale otra vez los dichosos caracteres esos raros:

Cristinah��Ferrer�� Ͽp悷v� Julian�Ͽ33333�#@Anatinah��Fernandez� Ͽp悷v� Gilan�Ͽ�!@Martanah��Perezdez� Ͽp悷v� Mejia�Ͽ�z�G�

Lo que quiero es que todos los datos de los alumnos en lugar de imprimírmelos por pantalla me los imprima en el fichero binario alumnos.dat y que me salga en el mismo formato que me sale por pantalla . ¿Cómo puedo hacerlo?. ¿Cuańdo conseguiré abrir el maldito fichero binario y ver su contenido?. Todavía no lo he logrado.

Etiquetas: binario, fichero, media
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:05.