[C con Clase] manejo de archivos en c

Diego bruceleechile en gmail.com
Mie Jun 10 01:30:08 CEST 2009


Bueno primero que nada un saludo a todos los integrantes de la lista.

Les cuento mi problema

tengo un problema con manejo de archivos, lo que apsa es que tengo un archivo de texto (.txt) que contiene numeros y al lado su correspondecia empresa.
ejemplo:

6200	ENTEL
6201	ENTEL
6202	ENTEL
6203	ENTEL
6204	ENTEL
6250	CLARO
6251	CLARO
6252	CLARO
6253	CLARO
6254	CLARO
6255	CLARO
6256	CLARO
6280	MOVISTAR
6281	MOVISTAR
6282	MOVISTAR
6283	MOVISTAR
6284	MOVISTAR

La idea es ingresar un numero de telefono (celular) por ejemplo:

62536316

y que el programa tome el numero y busque su correspondiente en el archivo de texto en el caso del ejemplo seria: 6253  CLARO
entonces el programa debe guardar el nombre de la empresa en un string para luego mostrarlo y decir

 el numero 62536316 es de la empresa CLARO

bueno yo tengo este codigo:


#include <stdio.h>

int main()
{
    FILE *fichero;
    char temp[20];
    int i=0;
    int j=0;
    char celular[20];
    char celtemp[10];
    char compania[20];
    printf("Ingrese el celular: ");
    scanf("%s", &celular);
    fichero = fopen("fonos.txt","r");
    char temp[20];
    while (fgets(temp,strlen(temp),fichero) != NULL){
        while (temp[i] != ' ')
        {
              i++;
              }
        strncat(celtemp,temp,i); //dejo el numero 6235 x ejemplo en celtem
        printf("CELTEMP= %s\n", celtemp); //ESTA LINEA ES PARA VER QUE CONTENIA
        i++;
        }while (i<strlen(temp)-1)
        {
              compania[j] = temp[i];//luego el resto en compania, en el caso del ejemplo CLARO
              i++;
              j++;
              }
        printf("COMPANIA= %s\n", compania); //ESTA LINEA ES PARA VER QUE CONTENIA
        strncmp(celular,celtemp,4)  //La idea es comparar luego los 2 strings y asi linea por linea del archivo, hasta que lo encuentre
        }
    printf("La Compania del celular %i es %s\n\n", celular,compania);
    system("pause");
    }
}


espero que me puedan ayudar debe estar en ANSI C GRACIAS


Más información sobre la lista de distribución Cconclase