Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к срезу__2014.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.76 Mб
Скачать

Функции работы с файлами

fclose (имя указателя на файл); - закрытие файла

fcloseall (); - закрытие всех файлов

fprintf(имя указателя на файл, форматная_строка, список_аргументов); - запись в файл (например, fprintf(f,"%4d",c);)

fscanf(имя указателя на файл, форматная_строка, список_аргументов) – считывание информации из файла (например, fscanf(f,"%d",&c);) При достижении конца файла возвращается значение EOF.

fputs(строковая переменная, указатель на файл) – запись строки в файл; функция не добавляет символ перехода на новую строку в результирующую строку. Поэтому после fputs() необходимо вызывать функцию fputc() с символом новой строки в качестве первого аргумента:

fputc(′\n′, fp);

При записи в файл символ \n трансформируется в символы возврата каретки и перевода строки.

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

Пример: fgets (s, 50, f);

функции прочитает из файла одну строку текста полностью, если ее длина меньше 50 символов с учетом символа '\n', который функция также сохранит в строке. Последним (50-ым) элементом строки s будет символ '\0', добавленный fgets(). Если строка окажется длиннее, то функция прочитает 49 символов и в конце запишет '\0'. В таком случае '\n' в считанной строке содержаться не будет.

  1. Указатели в ЯП Си. Операции над указателями.

Указатели

Указатель — это адрес поля памяти, занимаемого программным объектом.

Для хранения адресов используются переменные типа «указатель». Значение указателя равно первому байту участка памяти, на который он ссылается. Формат описания указателей:

тип *имя_переменной;

Примеры описания указателей:

int *i; char *c; float *f;

После такого описания переменная i может принимать значение указателя на величину целого типа; переменная c предназначена для хранения указателя на величину типа char; переменная f — на величину типа float.

В заголовочном файле stdio.h определена константа — нулевой указатель с именем NULL.

Например:

f=NULL;

Нулевой указатель обозначает отсутствие конкретного адреса ссылки.

Указатель типа void указывает на неопределенный тип данных. При работе с такими указателями используется операция приведения типов:

void *p;

char c,s=’f’;

p=&s;

c=*(char*)p;

Значение указателя можно вывести на экран с помощью функции printf, используя спецификацию %p (pointer), результат выводится в шестнадцатеричном виде.

Пример:

int a = 5, *p;

p = &a;

printf(“a = %d , *p = %d , p = %p .\n”, a, *p, p);

Результат может быть следующим:

a = 5 , *p = 5 , p = FFF4 , p1 = FFF6, p2 = FFF8 .

Операции над указателями

Операция & — «взять адрес» дает в результате адрес переменной в памяти.

Пример:

int a=5;

char s='G';

float r=1.2E8;

Тогда допустимы операторы i=&a; c=&s; f=&r;

Операция * является знаком операции разадресации: «значение, расположенное по указанному адресу».

После приведенных выше описаний в записи выражений взаимозаменяемыми становятся а и *i, s и *c, r и *f.

Например, два оператора

х=а+2; и x=*i+2;

или a++ и (*i)++

тождественны друг другу

  1. Динамическая и статическая память. Функции работы с динамической памятью в ЯП Си.