I created a file.dat whith this function
int writeData(do开发者_如何学编程uble* v, int length, FILE* fh)
{
FILE *Stream; //Stream for output.
double*Elem; //Pointer to all the element to save.
assert( fh!=NULL );
Stream = fh;
Elem=(double*)malloc((length+2)*sizeof(double));//Allocate memory to Elem.
if(Elem==NULL)
{
printf("Can't allocate memory for saving the matrix!");
return(0);
}
Elem[0]=(double)1;//Save the dimensions of the matrix.
Elem[1]=(double)length;
int i;
for(i=0;i<length ;i++)
Elem[i+2]=v[i];
if(fwrite((void*)Elem,sizeof(double),(length+2),Stream) < (unsigned)(length+2)) //Save the data.
{
printf("Error, can't save the matrix!");
return(0);
}
free(Elem);
return(1);
}
Now I'd like to convert this file into an xml one or into a text file...
Any tips? Thanks
Saving the values into text format is easy:
int writeTextData(double* v, int length, FILE* fh)
{
assert( fh!=NULL );
fprintf(fh, "%d\n", length);
for(int i=0;i<length ;i++)
if(fprintf(fh, "%lf ", v[i]) <= 0)
{
printf("Error, can't save the matrix!");
return(0);
}
return(1);
}
Will save length followed by length numbers.
XML is better written with a help of a library.
While such a simple dataset can be saved into XML manually (through fprintf's) anything more complicated will require you to do complex encoding/escaping and is very error prone, unless you are proficient with XML - as previously said, you'd better use a library (such as libxml)
精彩评论