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

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

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

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

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

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

от 25%

Подписываем

договор

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

Скидка 25% при заказе до 4.3.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. реферат дисертації на здобуття наукового ступеня кандидата технічних наук Харків 2003 Дисер
2. Курсова робота студента 2 курсу факультету природничих наук Бабошина Івана Керівник ~ Куниця Наталя
3. Бажов Павел Петрович
4. ТЕМА- ПРОКУРОРСКИЙ НАДЗОР КАК САМОСТОЯТЕЛЬНАЯ ОТРАСЛЬ ГОСУДАРСТВЕННОЙ ДЕЯТЕЛЬНОСТИ
5. Развитие делового туризма в Польше
6. РЕФЕРАТ дисертації на здобуття наукового ступеня кандидата історичних наук Черкаси ~ Дисертаці
7. Успешно осуществляющиеся на западе аутсорсинговые услуги сегодня находят своего потребителя и в Российско
8. Контрольная работа 1 Вариант 1 I
9. Вариант 1 1 re Hd tested Were powered Would cool 2
10.  Судейский корпус судейское сообщество и статус судей- понятие и общая характеристика Судейским корпу