Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Существует ли преимущественное различие между функциями fgets и fread?(Си)

kh fjkg Знаток (328), закрыт 3 года назад
Обе функции считывают с файла строки в массив.
fread немного длиннее пишется fread(array,1,length,file);
Но есть ли какое то может преимущество или отличительная особенность в этих функциях?
В функции fread например fread(arr,1,lenght,file)- один -это один Байт-это размер одного элемента массива. Но зачем нужна вообще эта информация и чем полезна.

Если убрать эту однёрку и получится функция fgets, которая сработает так же
Лучший ответ
Дед Мазай Гений (58129) 3 года назад
fread читает из файла столько данных, сколько указано.
fgets читает файл до конца строки (до символа \n). Символ конца строки считывается из файла, но не попадает в результат.
kh fjkgЗнаток (328) 3 года назад
И правда. Забыл. Ок.
Я проверил на другом файле без \n и запутался.
Остальные ответы
kaiu Высший разум (120238) 3 года назад
http://www.c-cpp.ru/content/fgets
http://www.c-cpp.ru/content/fread
Из примеров погляди, да и в названии уже ясно. Что первую создали под текстовые файлы, вторую под бинарные
kh fjkgЗнаток (328) 3 года назад
Под бинарные?
Функцией fread что угодно читать можно.

Различие в том до какого символа будет читаться файл.
Посмотрите ответ Дед Мазай.
kaiu Высший разум (120238) kh fjkg, можно, можно текстовый обозвать exe а можно и наоборот. Но это ничего не значит, так как создавали для удобства работы именно с файлами внутри которых определенная структура. Если в файле txt разные размеры строки, то 1, то 100, то 256, то 3, то читать их fread удобно только побайтно. Но для бинарный можно скинуть все множество одного типа в один файл, потом загрузить когда надо.
Похожие вопросы