Язык Си с нуля - Урок 37 - Работа с файлом в бинарном режиме

preview_player
Показать описание
Это видео для тех, кто еще ни разу не программировал, но прошел предыдущие 36 уроков.

В данном видео мы:
+ запишем и прочитаем из файла число, массив и структуру
+ узнаем как нельзя записывать в файл
+ запишем и прочитаем данные с помощью указателей
+ запишем и прочитаем динамические массивы

Уроки по теме:

Язык Си с нуля - данный видеокурс предназначен для тех, кто еще ни разу не программировал. Здесь я максимально понятно пошагово обьясняю основы программирования на языке Си. Если хотите научиться программировать на языке Си - пройдите весь курс. Помимо объяснения материала я даю домашку. А после каждых нескольких уроков мы вместе пишем забавные игры!)
Комментарии
Автор

обычно ускоряю видео, а тут даже замедлил!
Спасибо!

tonyp
Автор

Хоть я и не C-программист, но получилось круто, респект ✊

idjesjv
Автор

fwrite и fread - перепутаны местами 2 и 3 аргументы, сначала должен идти размер, а потом количество

JohnSmith-mrwp
Автор

Интересно было узнать о бинарном режиме. Спасибо!

icwxqww
Автор

Чотко, Спасибо за помощь с контестом 😅👍🏻

tuvzjfi
Автор

Антон а вы знали что вы очень добрый но забывчивый человек=) я 10 часов не мог понять а почему же у вас всё работает а у меня нет, А оказывается что что бы открыть файл на бинарное чтение/запись нужно использовать "wb"/"rb" и тогда всё работает! Ноя вам доверял и поэтому у меня код не работал=)

nonamenoname
Автор

Дружищще, расскажи о себе, на каком языке пишешь в основном, почему именно этот язык, в какой сфере работаешь.
Очень интересно

workoutforever
Автор

Крто братан продолжай если знаешь др языки то делай и по ним тоже кратко ясно - молодец !

dimkaddd
Автор

Оч круто, Спасибо,
Антон можете рассказать,
есть ли возможность редактировать с помощью си документы docx

fhtgwne
Автор

0:59
Нет не так.
Может это так в С++ не знаю, я видел такое расположение на Майкрософт сайте.
Но в Си для функции fwrite параметры идут в другом порядке.
Сначала указатель на массив, потом размер одного элемента, потом общее количество Байт всех элементов, потом имя файла.

namename
Автор

Работа с файлом в бинарном режиме Работа с файлом в бинарном режиме

ostrov
Автор

не подскажите почему при записи TTest st = { 12, 6660, 3.1413, "hellow" }; если использую числа от 6660 и до 6920 в принтф выводится некорректные значения

fhtgwne
Автор

Читаю четвертое задание уже раз пятый но всё ещё не понимаю что значить "Прочитать структуру, одним из полей которой будет структура"

smeh_noi
Автор

Почему файл весит один байт, когда в него записали просто цифру 7 в десятичном виде, ведь переменая объявлена как int, а int занимает 4 байта, значит файл должен занимать 4 байта.
Обьясните пожалуйста, что я понимаю неправильно.

workoutforever
Автор

для функции в fwrite аргументы идут в другом порядке, а именно (Первым параметром должен быть  на записываемые данные, вторым - размер единичного элемента данных, а третьим - количество этих элементов, последним наименование файла).
Зачем автор роликов делает такие ошибки преднамеренно это интересный вопрос, это конечно заставляет порыть интернет но стоило бы сначала хоть немного посвятить новичков в тему declaration of functions,

whocares
Автор

я по фаилам смотрел уроки с другого канала потому-что я работаю в visual studia и там все не так и еще на том канале другой способ работы с фаила ofstream и ifstream

ylikitishnik
Автор

думал в java, ручной писсанины немерянно, но блин тут не меньше 🤦🤬🤮

glbtonp
Автор

Ну сколько чуши... Ну трудно что-ли ознакомиться с материалоам?
далеко ходить не надо

The function fread() reads nmemb items of data, each size bytes long, from the stream pointed to by stream, storing them at the location given by ptr.
The function fwrite() writes nmemb items of data, each size bytes long, to the stream pointed to by stream, obtaining them from the location given by ptr.

Я один тут не вижу слова файл?

igorseledtsov
Автор

Спасибо Вам за видео. Хотел узнать почему мусор попадает
int main(){
FILE * f;

int x = 6, z = 0;
char ch = 'A', c;
char str[] = "oksana", ar[7];
double b = 8.8, g;
f = fopen("oks.txt", "wb");
fwrite(&x, 1, sizeof(int), f);

fwrite(&b, 1, sizeof(b), f);

fwrite(str, sizeof(str) / sizeof(str[0]), sizeof str, f);
fwrite(&ch, 1, sizeof(char), f);
fclose(f);

f = fopen("oks.txt", "rb");

fread(&z, 1, sizeof(int), f);

fread(&g, 1, sizeof(b), f);

fread(ar, sizeof(char), sizeof(str) / sizeof(str[0]), f);
fread(&c, 1, sizeof(char), f);
printf("%d %c\n%s\n%.1f\n", z, c, ar, g);
fclose(f);

lhvpjuu