У меня есть информация в двоичном файле, который идет в таком формате (1 int, 10char), как это: "21fghjklbnv2qwertyuiop" и так далее. Почему я не могу правильно написать информацию в текстовом файле (имя: 10char Возраст: int)? Он пишет только целое число, и это неправильно. Я попытался изменить способ выделения памяти, но это ухудшило ситуацию
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);
}