fseek(try1,sm+2*2,SEEK_SET); /* Установление позиции с номером sm+2*2 в качестве текущей в файле file-pos.txt*/
fread(s+m+2*2,1,2*(2*n-m-2),try1); /* Из файла, связанного с указателем try1, последовательно считываются последние символы, их количество = 2*(2*n-m-2) */
for (i=m+2*2; i<n*2; i+=2)
{ printf ("s(%d)=%c%c\n",(int)(i/2)+1,*(s+i),*(s+i+1));
*str=*(s+i); *(str+1)=*(s+i+1); *(str+2)='\0';
hs[(int)(i/2)]=atoi(str);
sum_n+=hs[(int)(i/2)];
}
printf("\nRESULT: summ of last elements sum_n = %d\n",sum_n);
fprintf(tr,"%d\n",sum_l);
itoa(sum_n,str,10);
fputs( str,tr);
free(hs); free(s);
fclose(try1); fclose(tr);
}
Замечание. Значение параметра offset может быть отрицательным. В этом случае перемещение указателя происходит от точки отсчета в направлении к началу соответствующего потока.
7.4. СТРУКТУРНЫЙ ТИП ДАННЫХ
Основное назначение структур – организация сложных данных. Группа связанных между собой по смыслу переменных (объектов), не обязательно одного типа может быть представлена не как множество отдельных элементов, а как единое целое – структура.
Классическим примером группы связанных между собой по смыслу данных служит учетная карточка сотрудника предприятия, в которой содержатся, например, следующие сведения об одном сотруднике: табельный номер, ФИО, дата рождения, пол, адрес, зарплата. В свою очередь, некоторые из этих сведений могут иметь несколько компонент и тем самым представлять группы данных. Таковы, например, ФИО, дата рождения, адрес.
Для удобства хранения и обработки информации, например, содержащейся в карточке одного сотрудника, в языке С используется специальный тип данных – структура. Структура относится к производным, агрегирующим типам данных.
А для того, чтобы работать со структурой необходимо предварительно описать структуру, т.е. создать тип данных, соответствующий данной структуре, а именно всем ее компонентам.
И сама структура, и ее компоненты обозначаются идентификаторами; с идентификаторами компонент структуры необходимо связать ключевые слова – описатели типов (базовых/производных, скалярных/агрегирующих). В результате структуру можно рассматривать как единое целое и осуществлять при необходимости доступ к любой из составляющих ее компонент.
Синонимы понятия компонента структуры: элемент, член, поле.
В соответствии с синтаксисом языка С описание структуры (создание типа данных “структура” с именем <имя структуры>) следующую форму (первый способ):
struct <имя структуры>
шаблон {< спецификации типа > <идентификатор_1>:
структуры …
< спецификации типа > <идентификатор_N>;
} ;
В качестве <спецификации типа> можно использовать любой базовый/производный, скалярный/агрегирующий тип данных. <идентификатор_1>, …, <идентификатор_N> – имена элементов структуры.
Описание (определение) структуры создает шаблон, который можно использовать для создания объектов, т.е. экземпляров данной структуры.
Ввести структурный тип можно и с использованием ключевого слова typedef в соответствии со следующей синтаксической формой (второй способ):
typedefstruct
{< спецификации типа > <идентификатор_1>; …
< спецификации типа > <идентификатор_N>;
} <имя структуры> ;
Замечание. При создании типа данных struct <имя структуры> память не выделяется.
В примере 7.6 создается шаблон структуры с именем struct sotrudnik-1 (sotrudnik-2), предназначенной для хранения информации из учетной карточки сотрудника, рассмотренной выше.
Пример 7.6.
Первый способ struct sotrudnik_1
{ int tab_number; char fio[50]; char data[10];
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.