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

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

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

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

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

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

от 25%

Подписываем

договор

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

Скидка 25% при заказе до 5.4.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. Я хочу сегодня ввести всех в курс кто сегодня пришел вопервых здравствуйте мои дорогие коллеги.html
2. Разделы экономической теории
3. Грубые корма
4. Организация производства на предприятиях сферы сервиса
5. сгореть на смене Материал из Летний лагеря Перейти к- навигация поиск Вожатый как актер всегда долж
6. Персонал. УПОЛНОМОЧЕННОЕ ЛИЦО.
7. летнего возраста имеет право заниматься предпринимательской деятельностью в установленном законом порядк
8. Реферат
9. реферат дисертації на здобуття наукового ступеня кандидата хімічних наук Дніпропетров.html
10. Макиавелли Николо История Флоренции Книги 14 НИККОЛО МАККИАВЕЛЛИ История Флоренции Книги 14