<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>
Hola estoy buscando un campo por un registro que es I01 y lo he pasado a cadena  y me sacan tambien los campos I011 e I010<br><br>Aqui esta el codigo. que estoy haciendo mal?<br><br>void consultas_ID(void)<br>{<br>    canal_habitacion=fopen(FICHERO_HABITACION,"rb");  // Si el archivo no existe informa del error e interrumple el programa<br><br>    if(canal_habitacion==NULL)<br>    {<br>        printf("\n\nERROR\t El archivo 'HABITACIOIN.DAT' no existe o no se puede acceder a el.");<br>        getch();<br>        exit(0);<br>    }<br>    fclose(canal_habitacion);<br>    canal_habitacion=fopen(FICHERO_HABITACION,"r+b");  //Abre el archivo en modo lectura-escritura binaria<br>    fseek(canal_habitacion,0L,0); //Me situlo al princio;<br>    fread(&registrohab, sizeof(registrohab),1,canal_habitacion); //Leo el archivo con el molde "indice"<br>    N=registrohab.num_registro;<br><br>    if(N==0){<br>    //Si el archivo esta vacio informa del error e interrumpe el programa<br>    printf("\nERROR\tEL archivo 'HABITACION.DAT' esta vacio");<br>    getch();<br>    exit(0);<br>    }<br>    do{<br>            clrscr();<br>            printf("\nIntroduzca el ID_HABITACION del contacto que desea visualizar => ");<br>            fflush(stdin);<br>            gets(buscarID);  //Lee el nombre introducido por el usuario<br><br>            sw=0;<br><br>            for(int i=1; i<=N; i++)  //Bucle que recorre el archivo<br>            {<br>                desplazamiento = i*sizeof(habit);  //saltando de 32 en  32 bytes.<br>                fseek(canal_habitacion,desplazamiento,0);  //me situo<br>                fread(&habit, sizeof(habit),1,canal_habitacion);<br>                if(strncmp(habit.id_habitacion, buscarID, strlen(buscarID))==0)<br>                {<br>                    if(habit.id_habitacion[0]=='I')<br>                    {<br>                        printf("\n*******************************************\n");<br>                        printf("\n\t TIPO HABITACION : INDIVIDUAL ");<br>                        printf("\n\t ID HABITACION %s",habit.hindividual.id_habitacion);<br>                        printf("\n\t Precio %3.2f",habit.hindividual.precio);<br>                        printf("\n\t Estado: %s",habit.hindividual.estado);<br>                        printf("\n\t Nº HABITACIONES: %d",habit.hindividual.NUM_INDI);<br>                        printf("\n*******************************************\n\n");<br>                        getch();<br>                    }<br>                    if(habit.id_habitacion[0]=='D')<br>                    {<br>                        printf("\n*******************************************\n");<br>                        printf("\n\t TIPO HABITACION : DOBLE ");<br>                        printf("\n\t ID HABITACION %s",habit.hbdoble.id_habitacion);<br>                        printf("\n\t Precio %3.2f",habit.hbdoble.precio);<br>                        printf("\n\t Estado: %s",habit.hbdoble.esta);<br>                        printf("\n\t Nº HABITACIONES: %d",habit.hbdoble.NUM_DBL);<br>                        printf("\n*******************************************\n\n");<br>                        getch();<br><br>                    }<br><br>                    sw=1;<br>                }<br>            }<br>            if(!sw)<br>            {<br>                printf("\n\aERROR\tLa entrada %s no se encuentra en el fichero:");<br>            }<br>            printf("\n\n\t¿Quieres consultar otro contacto (s/n)? =>");<br>            fflush(stdin);<br>    }while(getchar()=='s');<br><br>    fclose(canal_habitacion);<br><br>}<br><br>                                       </div></body>
</html>