![]() Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Что такое комбинированный/составной тип данных? Способы описания (примеры). Способы обращения к компонентам структуры. Примеры.
Ответ: Структура – совокупность нескольких переменных, часто различных типов, сгруппированных под единым именем для удобства обращения. Для работы со структурой необходимо решить следующие задачи: · Разработать и объявить формат (компоновку) структуры; · Объявить переменную (или переменные), соответствующую данной структуре; · Обеспечить доступ к индивидуальным компонентам переменной типа структуры. Объявление структуры Объявление структуры – общее описание, показывающее из каких частей (членов, полей) состоит структура. Элементом структуры может быть любой тип данных, в том числе и другая структура. Объявление заканчивается точкой с запятой.При объявлении структуры память не выделяется. Фактически объявление структуры определяет новый тип с именем структуры
Создание переменной типа структуры Для хранения данных необходимо выделить память.Выделение памяти происходит при объявлении переменной типа структуры.При объявлении типа структуры обязательно использование слова struct перед именем структуры (если не используется typedef). struct addr { char name[30]; char street [40]; char city[20]; char state[3]; unsigned long int zip; }; // памятьневыделяется // памятьвыделяется structaddraddr_info; // памятьвыделяетсяподкаждуюпеременную structaddrabook_city, abook_corp; При объявлении структуры можно одновременно объявить одну или несколько переменных: struct addr { char name[30]; char street[40]; char city[20]; char state[3]; unsigned long int zip; } addr_info, binfo, cinfo; Допускается (не рекомендуется) объявление структуры без имени типа – только для однократного объявления переменных. struct { char name[30]; char street[40]; char city[20]; char state[3]; unsigned long int zip; } addr_info; Доступ к полям структуры Доступ к полям структуры осуществляется с помощью оператора «.» : имя_переменной.имя_члена Где имя_переменной – имя переменной типа структуры
Понятие файла. Общие функции для работы с файлами. Примеры. Ответ: Файлы это:
Файл - это всё, что предназначено для ввода или вывода информации. При работе с файлами ввод/вывод данных через механизм потоков позволяет: Организовывать доступ к файлу в режимах записи или чтения; Выполнять ввод/вывод данных либо в виде последовательности символов (текстовый поток), либо в виде последовательности блоков данных заданного размера (бинарный, двоичный поток); Обеспечивать прямой доступ к определенному местоположению в файле (путем позиционирования указателя местоположения в файле). Прямой и последовательный доступ Файловый указатель – связан с каждым файлом (потоком) в ОС и указывает на текущее местоположение в файле. · Прямой (произвольный) доступ: o Файловый указатель можно принудительно поставить на любую позицию (получить произвольный порядок чтения данных). o Как правило, может быть осуществлен только для потоков - файлов. · Последовательный доступ: o В каждый момент времени доступна лишь одна компонента из всей последовательности данных. o Чтобы обратиться к компоненте с номером К, необходимо просмотреть от начала файла К-1 предшествующих компонент. o Процессы формирования (записи) компонент файла и просмотра (чтения) не могут произвольно чередоваться, файл вначале строится при помощи последовательного добавления компонент в конец, а затем может последовательно просматриваться от начала до конца. o Используется для стандартных потоков (stderr, stdin, stdout). o Практически всегда быстрее, чем прямой доступ. Файловая переменная У каждого потока, связанного с файлом, имеется управляющая структура (блок управления файлом), содержащая информацию о файле. Для ее хранения в программе используется переменная типа FILE: FILE *fp; Блок управления файлом содержит важную информацию о файле (не менять!): · Местонахождение буфера. · Характер доступа к файлу (чтение/запись). · Указатель текущей позиции в файле. · Наличие ошибок и состояния конца файла. Поток связывается с файлом путем выполнения операции открытия файла Связь между потоком и файлом разрывается при закрытии файла: · В случае нормального завершения программы все файлы закрываются автоматически. · В случае аварийного завершения программы файлы не закрываются. Открытие и закрытие файла Открытиефайла: FILE *fopen(char *name, char *mode); Где параметр name – имя файла, Параметр mode задает тип доступа к файлу:
Модификаторы режима открытия файла:
· В текстовом режиме: o Файл рассматривается как последовательность символов, разбитых на строки при помощи разделительного символа ‘\n’ (Unix) или пары символов ‘\r’, ‘\n’ (Windows); o При считывании разделительные символы заменяются на один символ переноса строки (‘\n’) · В бинарном режиме: o Точный побайтовый доступ к файлу. o Никаких преобразований при чтении/записи не выполняется. Открытие и закрытие файла Закрытиефайла: int fclose(FILE *file_ptr); Если программа завершила работу нормально (return 0), то все файлы автоматически закрываются. В противном случае это не гарантируется (возможны проблемы при повторном запуске программы). Поскольку средствами большинства ОС файловый ввод/вывод буферизуется, то записываемые в файл данные сначала накапливаются во внутреннем буфере. Вызов fclose() приводит к сбросу буфера на диск. Поэтому в любом случае целесообразно явно закрывать все открытые файлы. В случае ошибки функция fopen() возвращает NULL.
Числовой код ошибки – в глобальной системной переменной errno (<errno.h>). #include <stdio.h> #include <stdlib.h> #include <errno.h> . . . int main() { FILE *f = fopen("filеnamе.txt", "rt"); if (f == NULL) { printf("Ошибкаоткрытияфайласкодом %d\n“, errno); exit(1); } else { // работа с файлом } fclose(f); return 0; } |
|||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2018-04-12; просмотров: 696. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |