[C con Clase] Pasar datos de un archivo a un vector
Pablo Brunet
cirujatuc79 en gmail.com
Vie Mar 20 06:05:27 CET 2009
tampoco me cierra por que aca no me muestra nada si es totalmente logico lo
que estoy poniendo:
i=0;
while (!feof(m)){
fread(&v[i],sizeof(v[i]),1,m);
cout<<v[i].nombre;
i++; }
tendría que mostrar los nombres en ese caso. o no?
El 20 de marzo de 2009 0:04, Pablo Brunet <cirujatuc79 en gmail.com> escribió:
> 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/c1c58de6/attachment.html>
Más información sobre la lista de distribución Cconclase