Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по С Живицкая (Мет пособие).doc
Скачиваний:
112
Добавлен:
15.06.2014
Размер:
2.11 Mб
Скачать

2.3.5.Cредства typedef

С позволяет определять имена новых типов данных с помощью ключевого слова typedef. На самом деле здесь не создается новый тип данных, а определяется новое имя существующему типу, облегчает создание машинно независимых программ:

Формат:

typedef тип имя;

где тип - любой существующий тип данных, а имя - это новое имя для данного типа.

Новое имя определяется в дополнение к существующему имени типа, а не замещает его.

Пример:

typedefintInteger;

Данное описание делает слово Integer синонимом слова int. Теперь его можно использовать в обьявлениях типа так же как int.

Пример:

# include < stdio.h >

typedef float REAL;

main ()

{ REAL a;

printf ("введите a \ n");

scanf ( "% f", & a );

printf ( "a = % f", a);

}

Результат работы;

Введите а

3.4 5 6 7

а = 3.4 5 6 7

Здесь REAL становится синонимом слова float.

2.3.6.Файлы.

Файл – это организованный набор данных, расположенных на внешнем носителе. В файлах размещаются данные, предназначенные для длительного хранения. Каждому файлу присваивается используемое при обращении к нему уникальное имя. В языке С отсутствуют операторы (инструкции) для работ с файлами. Все необходимые действия выполняются через функции, включенные в стандартную библиотеку. Они позволяют работать с различными устройствами, такими как принтер, диски, камуникационные каналы и др. Эти устройства сильно отличаются друг от друга. Однако файловая система позволяет устройство сильно отличаться друг от друга. Однако файловая система позволяет приобразовывать их в единое логическое устройство называемое потоком.

Существует два типа потоков:

1. Текстовые

2. Двоичные

Прежде чем читать и записывать информацию в файл, он должен быть открыт. Это можно сделать с помощью библиотечной функции fopen. Она берет внешнее представление файла (например:C:MYFILE.TXT) и связывает его с внутренним логическим именем, которое используется далее в программах. Логическое имя – это указатель на требуемый файл. Его необходимо обьявлять. Делается это например так:

FILE * lst;

Здесь FILE – стандартное имя типа, записанное в стандартном определении stdio.h.

lst – это указатель на файл. Обращение к функции fopen в программе осуществляется так:

lst = foper (спецификация файла, вид использования файла);

Спецификация файла:устройство имя расширение,например:

С: MYFILETXT

1) Вид использования файла может быть r- означает открыть существующий файл для чтения.

2) w- создать новый файл для записи. (Если файл с указанным именем существует, то он будет переписан).

3) а- дополнить файл (открыть существующий файл для записи информации, начиная с конца файла, либо создать файл, если он не существует).

4) rb- открыть двоичный файл для чтения.

5) wb- создать двоичный файл для записи.

6) аb- дополнить двоичный файл.

7) rt- открыть текстовый файл для чтения.

8) wt- создать текстовый файл для записи.

9) аt- дополнить текстовый файл.

10) r+ - открыть существующий файл для записи и чтения.

11) w+- создать новый файл для записи и чтения.

12) а+- дополнить или создать файл с возможностью записи и чтения.

13) r+b - открыть двоичный файл для записи и чтения.

14) w+b - создать двоичный файл для записи и чтения.

15) а+b- дополнить двоичный файл с возможностью записи и чтения.

Если режим t или b не задан, то он определяется значением глобальной переменной - fmode.

Если значение - fmode = a BINARY, то файлы открываются в двоичном режиме, а если -fmode = a TEXT- в текстовом режиме. Если константы а BINARY и a TEXT определены в файле fcnfl.n. Строки видаr+вможно записывать в видеrв+. Если в результате обращения h функции fopen возникает ошибка, то она возвращает указатель на константу NULL. Для работы с файлом используются библиотечные функции fprintf, fscanf, fgets, fputs. После окончания работы с файлом, он должен быть закрыт. Делается это с помощью библиотечной функции fclose.

Например:

fclose (lst);

При успешном завершении функция fclose возвращает значение ноль. Любое другое значение говорит о ошибке.