У вас вопросы?
У нас ответы:) SamZan.net

указатель на буфер памяти в который либо из которого будут считываться данные

Работа добавлена на сайт samzan.net: 2016-03-13

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 19.5.2025

Для работы в бинарном режиме существует две функции: fread(), fwrite(). В заголовочном файле они определены:

size fread(void*buffer, size_t size, size_t count, FILE*stream);

size fwrite(void*buffer, size_t size, size_t count, FILE*stream);

buffer - указатель на буфер памяти, в который, либо из которого будут считываться данные.

Size – размер элемента в байтах.

Count – число считываний элемента.

Stream – указатель на файл.

#include <stdio.h>

#define N2

Struct tag_book{

Char name[100];

Char author[100];

Int year;

}books[N];

Int main(){

For (int i=0; i<N; i++){

Scanf(“%s”, books[i].name);

Scanf(“%s”, books[i].author);

Scanf(“%i”, &books[i].year);}

FILE*fp=fopen(“my.txt”, “wb”);

Fwrite(books, sizeof(books),1,fp);

Fclose(fp);

Fp=fopen(“my.txt”, “rb”);

Fread(books, sizeof(books),1,fp);

Fclose(fp);

Puts(“------”);

For(int i=0; i<N; i++);{

Puts(books[i]name);

Puts(books[i].author);

Printf(“%i\n”, books[i].year);

}

Return 0;

}

#include <stdio.h>

Void main(){

FILE*stream;

Char list[30];

Int I, numread, numwritten;

If(Stream=fopen(“my”,”wb”))!=NULL){

For(i=0;i<25;i++)

List[i]=(char)(‘z’-i);

Numwritten=fwrite(list,sizeof(char),25,stream);

Printf(“wrote %i items\n”,numwritten);

Fclose(stream);}

Else printf(“problem opening file\n”);

If(Stream=fopen(“my”,”rb”))!=NULL){

Numread=fread (list,sizeof(char),25,stream);

Printf(“numbers of items read %i\n”,numread);

Printf(“contents of buffer = %.25s\n”,list);

Fclose(stream);}

Else printf(“File could not be opened\n”);

Return;

}

В данном примере массив list выступает в качестве буфера, для ввода и вывода информации из бинарного файла. Элементы буфера инициализируются буквами латинского алфавита от z до b.  Записываются в файл с помощью fwrite. Оператор sizeof(char) указывает размер элемента – буквы, а число 25 соответствует числу записанных букв.

Битовые поля

Битовые поля в Си объявляются с помощью структур, позволяют получать доступ к отдельным битам или группам битов. Доступ к отдельным битам можно осуществлять с помощью побитовых операций, но использование битовых полей упрощает понимание программы.

Синтаксис объявление битового поля:

Struct <имя>{

<тип><имя>:<размер>;

};

#include <stdio.h>

#include <conio.h>

Struct byte{

Unsigned a0:1;

Unsigned a1:1;

Unsigned a2:1;

Unsigned a3:1;

Unsigned a4:1;

Unsigned a5:1;

Unsigned a6:1;

Unsigned a7:1;

};

Void main(){

Byte x={0,0,0,1,0,0,0,0};

x.a1=1;

printf(“size of byte = %i\n”, syzeof(byte));

printf(“ x.a1=%i\n”, x.a1);

printf(“ x.a3=%i\n”, x.a3);

printf(“x=%i\n”,x);}




1. тема управления тем лучше она работает; 4согласованность взаимодействие между вертикальными иерархичес
2. ПЕРЕКРЁСТНЫЕ ЗАПРОСЫ
3. Анализ стихотворения В.В. Маяковского Скрипка и немножко нервно..
4. Тема-Проектирование и уравнивание геодезических сетей
5. реферат дисертації на здобуття наукового ступеня кандидата технічних наук Харків 2001
6. НАДЁЖНОСТЬ ТЕХНИЧЕСКИХ СИСТЕМ И ТЕХНОГЕННЫЙ РИСК
7. .~азіргі ~ылымда~ы латын тіліні~ ма~ызы ~андай ЛАТЫН ТІЛІ ~ндіеуропа шо~ырыны~ италиялы~ тобына жатады
8. А ~ это электротехнические устройства применяемые при использовании электрической энергии начиная от ее
9. Статья 1. Предмет правового регулирования настоящего Закона Настоящий Закон определяет статус детей Вел
10. Речь по существу идет об определении базовых рынков на которых предприятие намерено действовать.