Будь умным!


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

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

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


Для работы в бинарном режиме существует две функции: 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. А Дании В какой из перечисленных стран доля расходов социального направления наиболее низкая Г Испании
2. Княжество Андорра
3. древнего италийца составлен давно
4. Iсторія Русів- міфи та факти Істо~рія Ру~сів твір української національнополітичної думки кінця X
5. і М~ндай банк ~ызметтеріні~ о~шаулан~ан салаларына ~детте банк операцияларын бас~ару маркетинг бухгалтер
6. Вирусы были открыты в 1892 г.
7. Тема 6- МЕТОДИКА ОБУЧЕНИЯ СИНТАКСИСУ ЛЕКЦИИ 89 План- 1
8. тематическому контролю 6.
9. Крушение режима Первой Республики в Италии
10. Профилактика нарушений опорно-двигательного аппарата детей в образовательном процессе по физической культуре
11. Пламенные революционеры ХХI века
12. СООРУЖЕНИЕ И ЭКСПЛУАТАЦИЯ ГАЗОНЕФТЕПРОВОДОВ Продольный профиль технологическая схема ситуационный пл
13. После изгнания наполеоновских армий из страны распространилось общественное движение против влияния фр п
14. это уникальная процедура по моделированию фигуры являющаяся незаменимым помощником при лечении целлюлита
15. На тему- Діагностика головних блоків ПК.html
16. тема і джерела конституційного права Система конституційного права України
17. ФИНАНСОВОЕ ПРАВО С.В. Маркосян
18. Фарадей
19. Кл и q212108 Кл расположены на расстоянии 3 см друг от друга
20. тема фактів понять положень з усіх галузей науки культури і техніки