[C con Clase] Pasar datos de un archivo a un vector
Pablo Brunet
cirujatuc79 en gmail.com
Vie Mar 20 06:54:13 CET 2009
no amigo, el archivo que estoy abriendo fue generado con este algoritmo y si
es un binario:
# include <stdio.h>
# include <stdlib.h>
# include <iostream>
# include <string.h>
using namespace std;
typedef struct persona{
char nombre[20];
int edad;
char provincia[30];};
persona p;
FILE * m;
int n,i=0;
int main()
{
m=fopen("pablo.txt","w+b");
cout<<"ingrese la cantidad de registros que desea cargar: ";
cin>>n;
while (i<n){
fseek(m,0,2);
cout<<"Provincia: ";
cin>>p.provincia;
cout<<"Nombre: ";
cin>>p.nombre ;
cout<<"Edad: ";
cin>>p.edad;
fwrite(&p,sizeof(p),1,m);
i++;}
fseek(m,0,0);
fread( &p, sizeof(p), 1, m );
while (!feof(m)){
cout << endl << p.nombre << " " << p.edad <<" "<<p.provincia<< endl;
fread( &p, sizeof(p), 1, m );}
fclose(m);
system("PAUSE");
return 0;
}
El 20 de marzo de 2009 2:24, Steven Davidson <srd4121 en njit.edu> escribió:
> Hola Pablo,
>
> Pablo Brunet wrote:
>
>> 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?
>>
>>
> Todo depende del formato u organización de la información contenida en el
> fichero. Según el código fuente que nos diste previamente, estás abriendo un
> fichero en modo texto (simple). Esto significa que la información se basa en
> caracteres. Por lo tanto, para leer y guardar la información debes procesar
> los caracteres y posiblemente convertirlos a otro tipo como 'int'. Para
> esto, no puedes leer la información directamente como lo has hecho con
> 'fread()', sino que debes leer caracteres y comprobar su representación.
> Esto último se puede lograr con 'fscanf()', si el formato no es muy
> complejo. Por ejemplo,
>
> FILE *fichero;
> int num;
> char cad[10];
>
> fscanf( fichero, "%s %d", cad, &num );
>
>
> Espero haber aclarado el asunto.
>
>
> 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/83fe10e4/attachment.html>
Más información sobre la lista de distribución Cconclase