Страница 1 из 1
Страное поведение функции fread (С/С++)
Добавлено: 21 июл 2008, 23:34
Llex
Открываю файл начинаю читать из него, первые вызовы функции проходят нормально
Код: Выделить всё
err = fread(&star.X,sizeof(unsigned short),1,DataFile)
после нескольких вызовов, в одном и тоже месте файла, функция возвращает, что прочитано 0 записей, хотя конец файла еще не достигнут. В чем причина? В среде разработки? Компилирую в Microsoft Visual C++ 2008
Re: Страное поведение функции fread (С/С++)
Добавлено: 22 июл 2008, 10:13
Vasilisk
А непременно нужно использовать семейство функций "fopen"?
Re: Страное поведение функции fread (С/С++)
Добавлено: 22 июл 2008, 18:33
Llex
В общем нет, но файл двоичный. И с ними я знаком

Я давно не программировал, решил вспомнить старое. Хотя можно попробовать классы ввода вывода, посмотреть как и что там.
Re: Страное поведение функции fread (С/С++)
Добавлено: 22 июл 2008, 18:40
Vasilisk
Боже мой! Каноническим считается использование, не "классов", а юниксовой open..., принимающей не FILE, а дескриптор. В винде такая же есть - это функции read/write. Там какая-то ерунда при открытии, поэтому функция называется _open, но по read/write в MSDN всё прекрасно находится...
Re: Страное поведение функции fread (С/С++)
Добавлено: 22 июл 2008, 21:24
Llex
"Unix это хорошо, это 5"

Хотя я всегда fopen fread/fwrite пользовался, но тут что то непонятное. Буду пробовать.
(Винда есть винда

)
Re: Страное поведение функции fread (С/С++)
Добавлено: 22 июл 2008, 22:24
Llex
Vasilisk огромное спасибо!
_open _lseek _read работают.

Слов просто нет