
14/02/2011, 11:30
|
| | Fecha de Ingreso: octubre-2010 Ubicación: madrid
Mensajes: 10
Antigüedad: 14 años, 5 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 |