Fread() & fwrite() - C (СИ)
Формулировка задачи:
Помогите пожалуйста ,не могу понять как использовать функции fread() и fwrite().
И если можно ,пожалуйста с объяснением.
Вот например одна задача которую я не могу решить.
Переменная типа int в памяти компьютера занимает 4 байта. Выведите эти четыре байта по одному, начиная от младшего байта, то есть байта с меньшим адресом. Каждый байт должен выводиться в виде целого числа от 0 до 255.
ВХОДНЫЕ ДАННЫЕ
Программа получает на вход одно целое число от -2147483648 до 2147483647.
Используйте указатели, для того, чтобы получить доступ к отдельным байтам числа.
ВЫХОДНЫЕ ДАННЫЕ
Программа должна вывести четыре числа, каждое от 0 до 255, соответствующих побайтовому представлению данного целого числа.
ввод вывод
0 ________ 0 0 0 0
1 ________ 1 0 0 0
256 ______ 0 1 0 0
1000 _____ 232 3 0 0
-1 _______ 255 255 255 255
Заранее спасибо.
Решение задачи: «Fread() & fwrite()»
textual
Листинг программы
#include <stdio.h> #include <stdint.h> int main(void){ uint8_t* p, *e; unsigned int x; while(scanf("%u", &x) == 1){ p = (uint8_t*)&x; e = p + sizeof(x); while(p != e) printf("%u ", *p++); putchar('\n'); } getchar(); return 0; }
Объяснение кода листинга программы
В этом коде программа запрашивает у пользователя ввод числа, преобразует его в указатель на байты и выводит каждый байт числа в отдельной строке. Вот список элементов кода:
- Включаемые заголовочные файлы:
и . - Объявление переменных:
- uint8_t* p;
- uint8_t* e;
- unsigned int x;
- Основной цикл программы, который выполняется, пока пользователь вводит числа:
- scanf() используется для считывания числа с консоли и сохранения его в переменной x.
- p = (uint8_t*)&x; - указатель p получает адрес первого байта числа x.
- e = p + sizeof(x); - указатель e получает адрес последнего байта числа x.
- while(p != e) - цикл, который выполняется, пока p не станет равным e.
- printf() используется для вывода значения каждого байта числа.
- putchar() используется для вывода символа новой строки.
- Конец цикла программы:
- getchar() используется для считывания символа, который завершит текущую строку ввода пользователя.
- return 0; - указывает на успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д