Когда я запускаю свою программу и выбираю просмотр списка продуктов, она ничего не печатает. Через какое-то время я узнаю, что значение fl_size
всегда равно 0. Почему это так?
void view_prdct_code_list() {
FILE *stock = fopen("stock.dat","r+");
assert(stock);
int fl_size=ftell(stock);
int prd_size= sizeof(product);
int quantity= fl_size/prd_size;
printf("fl_size=%d",fl_size);
fseek(stock,0,SEEK_SET);
prdct cprd= (product *)malloc (sizeof(product)*quantity);
assert(cprd);
int i;
fread(cprd,prd_size,quantity,stock);
for (i=0;i<quantity;i++){
printf("PRODUCT CODE: %d\n",cprd->code);
}
free(cprd);
fclose(stock);
}
ftell()
возвращаетlong
, поэтому вам лучше использоватьlong
для сохранения результата, аint
. - person alk   schedule 03.06.2014