Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/02/2011, 11:30
Jonathan_attica
 
Fecha de Ingreso: octubre-2010
Ubicación: madrid
Mensajes: 10
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: lectura de ficheros con fread en c

el código entero es el siguiente:


#include <stdio.h>
#include <stdlib.h>

struct {
char nombre[10];
int victorias;
int derrotas;
int partidas_totales;
}jugador;


int bienvenida(char nombre[10])
{
FILE *fichero_nombres;//el puntero para gestionar el fichero
int opcion, contador=1;
char letra;
printf("Bienvenido al juego de tres en raya\n\n");
printf("1. JUGADOR NUEVO\n");
printf("2. JUGADOR REGISTRADO\n");
scanf("%i", &opcion);
switch(opcion)
{
case 1:
fflush(stdin);
printf("Debes registrarte antes de comenzar para formar parte del ranking y las estadísticas");
printf("Introduce tu nombre(maximo 10 caracteres):\n\n");

fichero_nombres = fopen("jugadores.txt","a");//se posiciona al final del archivo
if(fichero_nombres== NULL)
{
printf("Problema con los ficheros.\n");
exit( 1 );
}

gets(jugador.nombre);
fwrite( &jugador, sizeof(jugador), 1, fichero_nombres );
printf("Gracias por registrarte\n");
break;
case 2:
fichero_nombres = fopen("jugadores.txt","r");//se posicionaen el archivo para lectura
if(fichero_nombres== NULL)
{
printf("Problema con los ficheros.\n");
exit( 1 );
}

printf("Elije tu nombre de la siguiente lista:\n");
do
{
printf("%i. ", contador);
fread( &jugador, sizeof(jugador), 1, fichero_nombres );
contador++;
printf("%s\n\n", jugador.nombre);
}while ( feof(fichero_nombres)==0 );
break;
//tengo un problema: me repite el ultimo numero
}

}




int main(int argc, char *argv[])
{
char nombre_jugador[10];
bienvenida(nombre_jugador);


system("PAUSE");
return 0;
}


¿alguien me podría ayudar? gracias