Retroceder   Foros del Web > Temas generales de computación > Programación > C/C++

Respuesta
 
Herramientas Desplegado
Antiguo 25-abr-2008, 17:42   #1 (permalink)
erjony ha deshabilitado el karma
 
Fecha de Ingreso: abril-2008
Mensajes: 1
Sonrisa Me pueden ayudar con este codigo en C??

Hola, soy nuevo por aquí y no se si esta bien colocado este post pero creo que no hay otro subforo para C. Bueno quiero hacer el siguiente programa y parece que todo funciona bien hasta que llega a la parte donde copia la estructura al fichero. Podrían ayudarme por favor?? Os adjunto el codigo. Mil gracias y saludos.

Código PHP:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_ALUM 100
#define MAX_NIF 10
#define MAX_ASIG 20

struct alumnos
{
    
char nif[15];
    
char asignatura[15];
    
float nota;
};

int leelinea(char *cadenaint tope)
{
    
int ci;
    
    for(
i=0; (i<tope-1)&&((c=getchar())!='\n'); i++)
    {
        
cadena[i]=c;
    }
    
cadena[i]='\0';
    return(
i);
}

void leealumnos(struct alumnos alumno[], int *tope)
{
    if(*
tope<MAX_ALUM)
    {
        
printf("Introduce el nif del alumno: ");
        
leelinea(alumno[*tope].nifMAX_NIF);
        
printf("Introduce la asignatura: ");
        
leelinea(alumno[*tope].asignaturaMAX_ASIG);
        
printf("Introduce la calificacion: ");
        
fscanf(stdin"%f", &(alumno[*tope].nota));
        (*
tope)++;
        
getchar();    //para quitar el /n
    
}
    else
        
printf("No se pueden hacer mas registros, cierre el programa y vuelva a abrirlo\n\n");
        
}

void anadiralumno(char *nombreficherostruct alumnos a[], int tope)
{
    
FILE *Fichero;
    if(
Fichero=fopen(nombrefichero"a+b")==NULL)
        
fprintf(stderr"\nNo se puede abrir <%s>"nombrefichero);
    else
    {
        
//Ahora pasamos todos los registros de la estructura al fichero
        
fwrite(asizeof(struct alumnos), topeFichero);
        
fclose(Fichero);
    }
}
        
        

int main()
{
    
char *nombrefichero="notas.bin";
    
int opcion;
    
struct alumnos alumno[MAX_ALUM];
    
int tope=0;
    
    
    
    
printf("--------------------------MENU------------------------\n\n");
    
printf("[1] - Dar de Alta la nota de un alumno\n");
    
    
printf("Escoge la opcion que quiera realizar: ");
    
scanf("%d",&opcion);
    
getchar();
    
    switch(
opcion)
    {
    case 
1:    //Dar de alta un alumno
        
{
            
leealumnos(alumno, &tope);
            
anadiralumno(nombreficheroalumnotope);
            break;
        }
    }
    return 
0;

erjony está desconectado   Responder Citando
Antiguo 27-abr-2008, 19:31   #2 (permalink)
c_keeper ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2007
Mensajes: 446
Re: Me pueden ayudar con este codigo en C??

Si no dices en qué funciona mal exactamente...
c_keeper está desconectado   Responder Citando
Antiguo 28-abr-2008, 10:00   #3 (permalink)
GagleKas ha deshabilitado el karma
 
Fecha de Ingreso: abril-2008
Mensajes: 16
Re: Me pueden ayudar con este codigo en C??

Puede que mi respuesta sea dura pero es la pura verdad.

Preguntale a tu profesor, ves a clases de repaso, atiende en clase... Tus intenciones no son las mas apropiadas. Te presentas aqui, copias tu codigo y pides una solucion sin ni siquiera explicar que hace tu programa. Solo decirte que tiene algunos fallos que se ven a simple vista. Espero que alguien te ayude...


Saludos.
GagleKas está desconectado   Responder Citando
Antiguo 30-abr-2008, 02:20   #4 (permalink)
Eternal Idol está en el buen camino
 
Avatar de Eternal Idol
 
Fecha de Ingreso: mayo-2004
Ubicación: Europa (VdL)
Mensajes: 5.058
Re: Me pueden ayudar con este codigo en C??

Lo primero: depuralo.
Eternal Idol está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 01:19.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93