Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   C/C++ (http://www.forosdelweb.com/f96/)
-   -   Me pueden ayudar con este codigo en C?? (http://www.forosdelweb.com/f96/pueden-ayudar-con-este-codigo-c-580078/)

erjony 25/04/2008 17:42

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;



c_keeper 27/04/2008 19:31

Re: Me pueden ayudar con este codigo en C??
 
Si no dices en qué funciona mal exactamente...

GagleKas 28/04/2008 10:00

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.

Eternal Idol 30/04/2008 02:20

Re: Me pueden ayudar con este codigo en C??
 
Lo primero: depuralo.


La zona horaria es GMT -6. Ahora son las 07:39.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.