[C con Clase] manejo de archivos en c

Programante programante en gmail.com
Mie Jun 10 02:50:31 CEST 2009


Diego escribió:
> 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

¿y?

¿Qué problema tienes?
Nos has dicho lo que quieres hacer y el código que usas. Pero no para
qué necesitas ayuda.

En vez de strlen(temp), deberías usar la longitud del array (20). En
este caso, como es una variable local, puedes usar sizeof(temp).





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