Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

fread(buf,2,n,file). buf - целочисленный массив. как будет работать?)

81K
31 мая 2012 года
mr.dns
6 / / 29.05.2012
Нужно из файла считать двухбайтовые числа. Хочется в массив. Но если сделать так,
 
Код:
int *buf;
buf = new int[buf_size];
f = fopen(fname,"rb"); //f - указатель на файл. fname - путь к файлу.
fread(buf,2,buf_size,f);
...то корректно работать будет при buf_size=1. в других случаях массив заполняется какими-то непонятными значениями.
как считать?
277
31 мая 2012 года
arrjj
1.7K / / 26.01.2011
:facepalm:

 
Код:
short *buf;
buf = new short[buf_size];
f = fopen(fname,"rb"); //f - указатель на файл. fname - путь к файлу.
fread(buf,sizeof(short),buf_size,f);
277
31 мая 2012 года
arrjj
1.7K / / 26.01.2011
 
Код:
fread(buf,sizeof(int),buf_size,f);
81K
31 мая 2012 года
mr.dns
6 / / 29.05.2012
Цитата: arrjj
 
Код:
fread(buf,sizeof(int),buf_size,f);


Не работает. в моем файле числа занимают 14 бит + 2 бита нулевые. итого 2 байта. значения лежат в интервале в разы меньше чем -65к - 65к. (где-то от -8к - 8к) к=тысячи. приблизительно :)
то есть работает, но значения получились "заоблачные" (для buf_size=4, файл намного длиньше):
-458739
-196622
-1441811
-4063291

81K
31 мая 2012 года
mr.dns
6 / / 29.05.2012
Цитата: arrjj
:facepalm:



в голове все еще лежит информация, что размер int 2 байта..
=) спасибо за очевидную подсказку.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог