Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/11/2006, 14:02
Avatar de yournightmare86
yournightmare86
 
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 875
Antigüedad: 18 años, 9 meses
Puntos: 9
"Basura" en fichero.

Tengo este programilla, que funciona perfectamente, solo que cuando abro el fichero creado me aparecen caracteres que yo no he introducido y que no tienen nada que ver. Creo que el problema está en las líneas en rojo, alguién podría ayudarme?

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

int menu();
void escribir();
void mostrar();

int main()
{
 int op;
 while(op = menu())
 {
  switch(op)
  {
            case 1:
                  escribir();
                  break;
            case 2:
                  mostrar();
                  break;
  }
 }
}

int menu()
{
    int op;

    printf("\n 1.-Introducir apellidos.");
    printf("\n 2.-Mostrar.");
    printf("\n\t 0.-Salir.");
    printf("\n\t\t Opcion?:");
    scanf("%d",&op);
    return op;
}

void escribir()
{
 char apellido[APELLIDO];
 char sn[1];
 FILE * fd;
 fd = fopen("alumnos.txt","a");
 
 do{
    printf("\n Introduzca apellido: ");
    scanf("%s",apellido);
    fwrite(apellido,sizeof(char[APELLIDO]),1,fd);    printf("\n Otro apellido (s/n) ?");
    scanf("%s",sn);
   } while(sn[0]=='s' || sn[0]=='S');
 fclose(fd); 
}

void mostrar()
{
 FILE * fd;
 char apellido[APELLIDO];
 
 fd = fopen("alumnos.txt","r");
 while(fread(apellido,sizeof(apellido),1,fd)) {
  printf("\n %s ",apellido);
 }
 fclose(fd);
}
Gracias por su atención, saludos.

Última edición por yournightmare86; 21/11/2006 a las 15:02