[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