3.6 Описание наиболее часто используемых функций из системных библиотек
Функция printf(char *format, ...) это универсальная функция вывода информации
на экран терминала. Первый параметр у этой функции - строка символов,
описывающая, какие и как переменные, записанные за строкой формата, выводить.
Описание этой функции подробно дано в описании конкретной системы. Здесь мы
рассмотрим несколько примеров:
-
int i=10, j=30;
printf(“i=%d j=%d\n”,i,j);
В данном примере функция printf() выводит значения переменных i и j. Причем
вывод будет произведен согласно строке формата: первоначально будет выведено
“i=”, затем будет выведено значение переменной i (%d означает, что надо взять
значение переменной из списка переменных и вывести это значение в десятичном
виде) , затем будет выведено “ j=” и значение переменной в целом формате. И
последние символы “\n” в строке формата означают, что необходимо произвести
перевод строки и возврат каретки. В результате вызова функции printf из
вышестоящего примера на экране появится строка символов: i=10 j=30
Перечислим некоторые описатели формата вывода:
-
%s - вывод строки символов;
%c - вывод одиночного символа;
%f - вывод вещественного числа
Например:
-
char str[20]=”привет”;
int i=20; double t=5.234; printf(“%f ---- %s ---- %d \n”,t,str,i); //на экран будет выведено 5.234 ---- привет ----
20
Имеется функция sprintf, которая аналогична printf, только вывод осуществляет в
специальный буфер.
Например:
-
char buf[30];
int Sum=21; sprintf(“Ваше число %d”,Sum); //В результате строка buf примет значение
“Ваше число 21”.
Для того, чтобы использовать эти функции, необходимо подключить системный
заголовочный файл stdio.h.
-
Функция puts(char
*s) выводит строку символов на экран терминала.
-
Функция gets(char *s) вводит значение в строку s.
- Функции для работы со строками:
-
int strlen(char *s) -
определяет длину стоки;
char *strcpy(char *d,char
*s) - копирует строку s в строку d
int strcmp(char *s,
char *t) производит лексикографическое сравнение двух строк, при
этом результат:
-1 s меньше t;
0 s равно t;
1 s больше t.
strcat(char *dst,char *src)
- это функция производит операцию конкатенации двух строк, результат помещает в
dst (проще говоря, строка src дописывается в конец dst).
Для того, чтобы использовать эти функции, необходимо подключить системный
заголовочный файл string.h.
- Функции преобразования:
-
int atoi(char *s) -
преобразование строки символов в целое число.
float atof(char *s) -
преобразование строки символов в вещественное число.
- Функции для работы с файлами:
-
Файловая система - это часть операционной системы, предназначенная для
долговременного хранения данных и программ. Файловая система обеспечивает
организацию каталогов и файлов.
Каталог - это поименованный участок внешней памяти, в котором хранятся
файлы и каталоги. Имеется начальный каталог или корневой каталог, от которого
начинается разветвление. Для указания местонахождения файла в файловой системе
используется путь, перечисление всех вложенных каталогов, начиная с корневого.
Файл - это поименованный участок внешней оперативной памяти, в котором
хранятся данные и программы. Файл имеет следующие основные атрибуты: имя,
расширение, время и дату создания, размер, информация о доступности и
защищенности и прочую служебную информацию.
Для работы с файлом необходимо:
-
Открыть файл. Эта операция предназначена для создания специальных структур и
механизмов для ускоренной работы с файлами, в частности создание специальных
буферов.
-
Выполнить чтение или запись. Операция чтения производит чтение информации из
заданного места файла в некоторый участок оперативной памяти. Операция записи
производит запись информации из оперативной памяти в файл. Существует два
варианта: запись порции информации в конец файла и перезапись порции информации
в уже созданном файле.
-
Закрыть файл. Эту операцию необходимо обязательно выполнить, если этого сделано
не будет, то файл будет потерян.
Есть несколько уровней программного обеспечения для работы с файлами:
-
верхний уровень описан в заголовочном файле stdio.h
-
средний уровень описан в заголовочном файле io.h
-
нижний уровень пишется на уровне вызова программных прерываний dos.
Рассмотрим функции для работы с файлами верхнего уровня.
-
FILE *fopen(char *filename, char
*mode) - открыть файл , необходимо указать имя файла и моду.
- Мода может иметь значения:
-
| r |
Открыть для только для чтения |
| w |
Создать для записи, если файл существует, то для перезаписи |
| а |
добавить, писать в конец файла, если он существует, открыть для записи, если не
существует |
| r+ |
Открыть файл для чтения и перезаписи |
| w+ |
Создать новый файл для чтения и перезаписи, если файл с таким именем
существует, то файл будет заменен на новый |
| a+ |
Открыть файл на чтение запись и перезапись |
Кроме того, файл можно открыть в текстовой(t) и двоичных(b) модах. Например
-
“rt”- открыть файл на чтение в текстовой моде.
“wb”- открыть файл на запись в двоичной моде.
Также возможно записывать
“r+t” ,“rt+”, “ab+” и т.д.
FILE - это описание специальной структуры, для хранения информации об открытом
файле (такая структура обычно называется "блок управления файлом") При успешном
выполнении операции открытия функция fopen возвращает адрес структуры типа
FILE. Если открытие файла не состоялось, то функция возвращает NULL.
- Функция чтения данных из файла.
-
size_t fread(void *ptr,size_t size, size_t n, FILE
*fp);
Функция fread читает n элементов данных, каждый длинной size байт, из открытого
файла fp, в блок оперативной памяти, адрес которого записан в ptr.
- Функция записи данных в файла.
-
size_t fwrite(void *ptr,size_t size, size_t n, FILE
*fp);
Функция fwrite записывает n элементов данных, каждый длинной size байт, в
открытый файла fp, из блока оперативной памяти, адрес которого записан в ptr.
- Функция перемещения указателя файла.
- int fseek(FILE
*fp, long offset, int whence);
Эта функция устанавливает значение указателя файла. Это указатель предназначен
для указания места в файле, где необходимо производить операции чтения записи и
перезаписи. Первоначально указатель устанавливается на начало файла. Параметр
offset устанавливает смещение относительно места отсчета (начало файла,
текущее положение указателя, конец файла), которое записано в параметре whence.
Эта переменная имеет три значения 0, 1, 2, которые представлены как
символические константы:
| Whence |
|
Размещение в файле |
| SEEK_SET |
(0) |
Начало файла |
| SEEK_CUR |
(1) |
Текущее положение курсора |
| SEEK_END |
(2) |
Конец файла |
- Функция fprintf
- int fprintf(FILE *fp,char
*format, ...)
Эта функция аналогична функции printf, описанной выше, за исключением того, что
она записывает данные не на экран, а в открытый файл fp.
|