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

Me pueden ayudar con este codigo en C??

Estas en el tema de Me pueden ayudar con este codigo en C?? en el foro de C/C++ en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 25/04/2008, 17:42
 
Fecha de Ingreso: abril-2008
Mensajes: 5
Antigüedad: 16 años
Puntos: 0
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;

  #2 (permalink)  
Antiguo 27/04/2008, 19:31
 
Fecha de Ingreso: febrero-2007
Mensajes: 450
Antigüedad: 17 años, 2 meses
Puntos: 3
Re: Me pueden ayudar con este codigo en C??

Si no dices en qué funciona mal exactamente...
  #3 (permalink)  
Antiguo 28/04/2008, 10:00
 
Fecha de Ingreso: abril-2008
Mensajes: 141
Antigüedad: 16 años
Puntos: 0
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.
  #4 (permalink)  
Antiguo 30/04/2008, 02:20
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: Me pueden ayudar con este codigo en C??

Lo primero: depuralo.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
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 04:42.