I have information in a binary file, which goes in such a format(1 int, 10char)like this: "21fghjklbnv2qwertyuiop" and so on. Why cannot I write the info correctly in a text file (Name: 10char Age: int)? It writes only an integer, and it's a wrong one. I tried changing the way memory is allocated, but it made it worse
void Task2_and_3(int i, int n)
{
int *Number_Filep = (int*)malloc(sizeof(int));
char *Wordp = (char*)malloc(sizeof(char)*11);
i = 0;
FILE*f;
if ((f = fopen("Test2.bin", "rb"))==NULL)
{
printf("File cannot be opened");
exit(1);
}
if(Number_Filep == NULL)
{
free(Number_Filep);
free(Wordp);
exit(2);
}
else if(Wordp == NULL)
{
free(Number_Filep);
free(Wordp);
exit(5);
}
while(1)
{
if(feof(f))
{
break;
}
if(i>=1)
{
int* temp = Number_Filep;
char* tempw = Wordp;
Number_Filep = realloc(Number_Filep, sizeof(int));
Wordp = realloc(Wordp, 11*sizeof(char));
if(Number_Filep == NULL)
{
free(temp);
free(tempw);
printf("Error");
exit(3);
}
else if(Wordp == NULL)
{
free(temp);
free(tempw);
printf("Error");
exit(3);
}
}
fread(Number_Filep, sizeof(int), 1,f);
fread(Wordp, sizeof(char), 11 ,f);
i++;
}
fclose(f);
FILE*fp;
if ((fp = fopen("Data.txt", "w"))==NULL)
{
printf("File cannot be opened");
exit(4);
}
n=0;
/* for(n=0;n<i;n++)
{*/
fprintf(fp,"Name: %s", Wordp);
fprintf(fp,"\n");
fprintf(fp,"Age: %d", *Number_Filep);
fprintf(fp,"\n");
//}
fclose(fp);
free(Number_Filep);
free(Wordp);
}