[C con Clase] Pasar datos de un archivo a un vector
Pablo Brunet
cirujatuc79 en gmail.com
Vie Mar 20 04:04:55 CET 2009
ahora si que me perdi....:( pero lo analizare
El 19 de marzo de 2009 23:56, Steven Davidson <srd4121 en njit.edu> escribió:
> Hola Pablo,
>
> Pablo Brunet wrote:
>
>> sigo con problemas :(, ahora no me muestra nada, solo presione una
>> tecla para continuar..., el archivo posee 2 registros en este orden:
>>
>> TUCUMAN JUAN 31
>> SALTA PABLO 29
>> # include <stdio.h>
>> # include <stdlib.h>
>> # include <iostream>
>>
>> using namespace std;
>>
>>
>> typedef struct p {
>> char nombre[20];
>> int edad;
>> char provincia[30];};
>> FILE * m; int i=0;
>> p v[100];
>>
>> int main()
>> {
>> m=fopen("pablo.txt","rb");
>>
>
> Esto es un problema, porque indicas que el fichero está en modo binario,
> cuando se trata de un fichero en modo texto. Elimina la letra 'b' de la
> segunda cadena.
>
> fseek(m,0,0);
>> fread(&v,sizeof(v),1,m);
>>
>
> Como cada registro tiene diferentes tipos: cadenas y enteros, entonces no
> deberías leer toda la información de golpe. Tienes que procesar cada línea
> de texto en el fichero. En la práctica, usa 'fscanf()'. Básicamente, estás
> leyendo y convirtiendo, si hace falta, las cadenas de caracteres al tipo que
> quieres. Esto es prácticamente leer la información desde el teclado con
> 'scanf()', pero en su lugar lo hacemos desde un fichero.
>
> Nota: La verdad es que la implementación de 'scanf()' invoca 'fscanf()'.
>
> i=1;
>> while (!feof(m)){
>> cout<<endl<<" "<<v[i].provincia<<" "<<v[i].nombre<<"
>> "<<v[i].edad<<endl; fread(&v[i],sizeof(v[1]),1,m);
>>
>
> Aquí haríamos lo mismo.
>
> i++;}
>> fclose(m);
>>
>> system("PAUSE");
>> }
>>
>>
>
>
> Espero que esto te ayude
>
>
> Steven
>
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20090320/dfeea0bf/attachment.html>
Más información sobre la lista de distribución Cconclase