Resultados 1 al 4 de 4

error strcmp y estructura

Ver modo hilado

Mensaje anterior Mensaje anterior   Próximo mensaje Próximo mensaje
  1. #1 error strcmp y estructura 
    Iniciado
    Fecha de ingreso
    Feb 2010
    Mensajes
    2
    Descargas
    0
    Uploads
    0
    hola wenas mi problema es que al compilar en c++ me da dos errores, uno en el strcmp y otro que me dice nose q de una estructura y he estado mirando que puede ser el error pero no lo encuentro y me esta volviendo loco ya...haber si alguien consigue encontrarlo...muxas gracias



    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <time.h>
    #include <limits.h>


    #define MAX_CAMARAS 15
    #define LON_PARTE 80
    #define MAX_NOMBRE 20


    /* Tipos de datos necesarios. */

    typedef char TCadena[LON_PARTE];

    typedef int Tidentificador[];

    typedef struct
    {
    char zona[MAX_NOMBRE];
    char trafico_inicial[LON_PARTE];
    char trafico_actualizado[LON_PARTE];
    Tidentificador identificador;
    }Tmaquinas;

    typedef struct
    {
    Tmaquinas maquinas;
    int ocupado;
    }Tlugar;

    typedef Tlugar Tcamaras[MAX_CAMARAS];

    ////////////*prototipos de las funciones*/////////////////////

    void inicializar(Tcamaras camaras);
    void menu();
    void crearcamara(Tcamaras camaras);
    void decirsitiovacio(const Tcamaras camaras,int*sitio);
    void buscarid(Tcamaras camaras,Tidentificador id_comp,int *comp,int *pos);
    void introducirdatoscam(Tmaquinas * maquinas);
    void leer_real ( const char mensaje[], double *resultado );
    void leer_cadena ( const char mensaje[], const int tam, char resultado[] );
    void leer_entero ( const char mensaje[], int *dato );///*leer un numero entero*///


    /************************************************** *********************
    *************************PROGRAMA PRINCIPAL*****************************
    ************************************************** *********************/

    int main()
    {
    Tcamaras camaras;
    int opcion;

    inicializar(camaras);
    do
    { menu();
    fscanf (stdin,"%d",&opcion);
    switch(opcion)
    {
    case 1:
    crearcamara(camaras);/*insertar empleado*/
    break;

    case 2:
    /*modificar datos*/
    break;

    case 3:
    /*dar de baja*/
    break;

    case 4:
    /*listar todos lo datos*/
    break;

    case 5:
    fprintf (stdout,"Hasta luego\n");
    break;

    default:
    fprintf (stdout,"Introduzca una opcion correcta\n");
    }
    }
    while (opcion!=5);
    return 0;
    }

    ///////////////////////*INICIALIZAR VACIO*////////////////////////

    void inicializar(Tcamaras camaras)
    {
    int i;

    i=0;
    while(i<25)
    {
    camaras[i].ocupado=0;
    i=i+1;
    }
    }

    /////////////////*MENU DE PRESENTACION*////////////////////////

    void menu()
    {
    fprintf (stdout,"\nBase de datos de empleados\n");
    fprintf (stdout,"1. dar de alta una nueva camara\n");
    fprintf (stdout,"2. Modificar\n");
    fprintf (stdout,"3. Dar de baja \n");
    fprintf (stdout,"4. Listar \n");
    fprintf (stdout,"5. Salir del programa\n");
    fprintf (stdout,"Seleccione opcion (1, 2, 3, 4, 5): ");
    }

    ///////////////////*DAR DE ALTA A UNA CAMARA*///////////////////////

    void crearcamara(Tcamaras camaras)
    {
    int pos;
    Tidentificador identifica;/*dice storage size"identifica isnt know*/
    int comp;
    int pos_comp;

    decirsitiovacio(camaras,&pos);
    if(pos != -1)
    {
    leer_entero("Introduzca el identificador: ",identifica);
    buscarid(camaras,identifica,&comp,&pos_comp);
    if (comp!=0)
    {
    introducirdatoscam(&camaras[pos].maquinas);
    camaras[pos].ocupado=1;
    }
    if (comp==0)
    {
    fprintf (stdout,"Ya existe el identificador introducido\n");
    }

    }
    else
    fprintf (stdout, "No hay sitio\n");
    }

    //////////////////*DICE SI HAY UN SITIO OCUPADO*///////////////

    void decirsitiovacio(const Tcamaras camaras,int*sitio)
    {
    int i;

    i=0;
    *sitio=-1;
    while((i<15) && (camaras[i].ocupado==1))
    {
    i=i+1;
    }
    if(i<15)
    *sitio=i;
    }

    /////////////////////////*BUSCAR IDENTIFICADOR*//////////////////////////

    void buscarid(Tcamaras camaras,Tidentificador id_comp,int *comp,int *pos)
    {
    int i;
    int encontrado;

    i=0;
    encontrado=-1;
    while (i<15 && encontrado!=0)
    {
    if (camaras[i].ocupado!=0)
    {
    encontrado=strcmp(camaras[i].maquinas.identificador,id_comp);
    }
    if (encontrado==0)
    {
    *pos=i;
    *comp=0;
    }
    i=i+1;
    }
    }

    ////////////////*LECTURA DATOS LABORALES*////////////////////

    void introducirdatoscam(Tmaquinas * maquinas)
    {
    leer_entero("Introduzca el id de la camara: ",maquinas->identificador);
    leer_cadena("Introduzca la zona que monitoriza: ",20,maquinas->zona);
    }

    //////////////////////*LEER UNA CADENA DE CARACTERES Y NUMEROS REALES Y ENTEROS*///////////////

    void leer_real ( const char mensaje[], double *resultado )
    {
    char aux[50]; /* almacén temporal para la línea tecleada */
    double valido; /* indica si el valor introducido es válido o no */

    fprintf ( stdout, "%s: ", mensaje );
    fflush ( stdin );
    fgets ( aux, 50, stdin );


    valido= sscanf( aux, "%lf", resultado)==1?1:0;

    while ( valido==0 )
    {
    fprintf ( stdout, "ERROR: %s no valido\n", mensaje );
    fprintf ( stdout, "%s: ", mensaje );
    fflush ( stdin );
    fgets ( aux, 50, stdin );

    valido= sscanf( aux, "%lf", resultado)==1?1:0;

    }
    }

    void leer_cadena ( const char mensaje[], const int tam, char resultado[] )
    {
    int valido; /* indica si el valor introducido es válido o no */
    char aux[tam+1]; /* almacén temporal para los datos tecleados */


    fprintf ( stdout, "%s: ", mensaje );
    fflush ( stdin );
    fgets ( aux, tam+1, stdin );
    valido = ( aux[strlen(aux)-1]== '\n');
    while ( !valido )
    {

    fprintf ( stdout, "ERROR: %s no valido\n", mensaje );
    fprintf ( stdout, "%s: ", mensaje );
    fflush ( stdin );
    fgets ( aux, tam+1, stdin );
    valido = ( aux[strlen(aux)-1]== '\n' );
    }
    aux[strlen(aux)-1]= '\0';
    strcpy ( resultado, aux );
    }

    void leer_entero ( const char mensaje[], int *dato )
    {
    char tmp[20]; /* recoge los datos escritos por el usuario */
    char *fin; /* apunta al último carácter procesado */

    do
    { do
    { fprintf ( stdout, "%s: ", mensaje );
    fgets ( tmp, 20, stdin );
    } while ( ( tmp[strlen(tmp)-1]!='\n' || tmp[0]=='\n' ) && !fflush(stdin) && fprintf ( stdout, "Dato no válido\n" ) );
    *dato = strtol ( tmp, &fin, 10 );
    } while ( ( *fin != '\n' || *dato == LONG_MIN || *dato == LONG_MAX ) && !fflush(stdin) && fprintf ( stdout, "Dato no válido\n" ) );
    }
    Última edición por webclon2000; 23-02-2010 a las 19:36
    Citar  
     

Temas similares

  1. Respuestas: 1
    Último mensaje: 23-11-2012, 09:09
  2. Estructura EXE
    Por biyonder en el foro GENERAL
    Respuestas: 1
    Último mensaje: 28-09-2009, 03:28
  3. Estructura pila
    Por valeronfor en el foro WINDOWS
    Respuestas: 0
    Último mensaje: 16-11-2006, 04:24
  4. Funciones y estructura de un spider
    Por thebosz en el foro GENERAL
    Respuestas: 10
    Último mensaje: 03-10-2004, 19:43
  5. Estructura de puntero por parametro...
    Por Dwarft en el foro GENERAL
    Respuestas: 9
    Último mensaje: 16-07-2004, 18:49

Marcadores

Marcadores