Информация из двоичного файла не отображается правильно - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть информация в двоичном файле, который идет в таком формате (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);

}
...