DiegoTc
March 7th, 2010, 08:03 AM
Hi guys
I am having troubles to read a char* from a file. Each time it reads me it prints garbage values :(
Here is the code
char * Columnas::convertir(string name)
{
int longi = name.length();
char *name1 = new char[longi + 1];
name.copy(name1,longi,0);
name1[longi] = '\0';
return name1;
}
void Columnas::Save(FILE *archivo)
{
int quetipo;
char *whichName;
string na1;
bool option1;
int sizevector=(int)Tipo.size();
for(int i=0;i<sizevector;i++){
quetipo=Tipo.at(i);
na1=ColumnName.at(i);
cout<<"Este es como string: "<<na1<<'\n';
whichName=convertir(na1);
cout<<"Este es como char: "<<whichName<<'\n';
option1=Primaria.at(i);
fwrite(&quetipo,sizeof(int),1,archivo);
fwrite(whichName,20,1,archivo);
fwrite(&option1,sizeof(bool),1,archivo);
}
cout<<"Archivo Guardado con Exito\n";
}
void Columnas::Load(FILE *archivo)
{
int quetipo;
string na1;
char *whichName;
bool option1;
while(!feof(archivo)){
fread(&quetipo,sizeof(int),1,archivo);
fread(whichName,20,1,archivo);
fread(&option1,sizeof(bool),1,archivo);
cout<<quetipo<<" "<<whichName<<'\n';
}
}
Thanks :D
I am having troubles to read a char* from a file. Each time it reads me it prints garbage values :(
Here is the code
char * Columnas::convertir(string name)
{
int longi = name.length();
char *name1 = new char[longi + 1];
name.copy(name1,longi,0);
name1[longi] = '\0';
return name1;
}
void Columnas::Save(FILE *archivo)
{
int quetipo;
char *whichName;
string na1;
bool option1;
int sizevector=(int)Tipo.size();
for(int i=0;i<sizevector;i++){
quetipo=Tipo.at(i);
na1=ColumnName.at(i);
cout<<"Este es como string: "<<na1<<'\n';
whichName=convertir(na1);
cout<<"Este es como char: "<<whichName<<'\n';
option1=Primaria.at(i);
fwrite(&quetipo,sizeof(int),1,archivo);
fwrite(whichName,20,1,archivo);
fwrite(&option1,sizeof(bool),1,archivo);
}
cout<<"Archivo Guardado con Exito\n";
}
void Columnas::Load(FILE *archivo)
{
int quetipo;
string na1;
char *whichName;
bool option1;
while(!feof(archivo)){
fread(&quetipo,sizeof(int),1,archivo);
fread(whichName,20,1,archivo);
fread(&option1,sizeof(bool),1,archivo);
cout<<quetipo<<" "<<whichName<<'\n';
}
}
Thanks :D