Задать вопрос
@TopToster

Ошибка при чтении бинарного файла?

#include <stdio.h>
#include <malloc.h>
#include "library.h"
int main() {
    FILE *in;
    queue q;
    queue_init(&q);
    in=fopen("input.bin","w");
    int *array,array_quantity,st=0,num;
    scanf("%i",&array_quantity);
    array=(int*)malloc(array_quantity* sizeof(int));
    for (int i=0;i<array_quantity;i++)
        scanf("%i",&array[i]);
    fwrite(array, sizeof(int),array_quantity,in);
    free(array);
    fclose(in);
    in=fopen("input.bin","r");
    while((num=fgetc(in))!=EOF){
      //  queue_push(&q,num);
        printf("%i ",num);
    }
    //while (!q.quantity){
      //  printf("%i",q.quantity);
    //}
    fclose(in);
    return 0;
}

Проблема в том что в начале я добавляю числа 1 2 3 (пример) а из файла получаю 1000 2000 3000
В чем дело?
  • Вопрос задан
  • 73 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
fwrite(array, sizeof(int),array_quantity,in);
...
    while((num=fgetc(in))!=EOF){
      //  queue_push(&q,num);
        printf("%i ",num);
    }


в начале я добавляю числа 1 2 3 (пример) а из файла получаю 1000 2000 3000
В чем дело?

А тебя не смущает, что записываешь в файл ты array_quantity элементов размером sizeof(int) каждый, а читаешь из файла посимвольно?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы