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

13.4.2. Основные функции обмена

Правила обращения к ним практически совпадают с ранее описанными для функций стандартных потоков ввода-вывода stdin и stdout. Появляется лишь дополнительный параметр – указатель на файл: FILE *.

Прототипы:

int fscanf(FILE *file, <управляющая_строка>, <список_данных>); См.scanf

int fprintf(FILE *file, <управляющая_строка>, [<список_данных>]); См.printf

int getc(FILE *file); - чтение одного символа. См.getchar

int putc(int symb, FILE *file); - запись одного символа. См.putchar

char* fgets(char *string, int max_len, FILE *file); Читает max_len-1 символ из файла или до символа '\n' (если раньше встретится). Добавляет в конец прочитанной строки символ '\0' вместо символа '\n'. См.gets

int fputs(char *string, FILE *file); См.puts

Замечание. Символ '\0' в файл не записывается и символ '\n' не добавляется. Если в этом есть необходимость, следует добавлять символ '\n' самостоятельно.

13.5. Средства языка Basic

13.5.1. Открытие и закрытие файла Инструкция open

Открывает файл.

Формат:

open <полный_путь> for <режим> as #<дескриптор>

Здесь:

- <полный путь> –строка в кавычках либо выражение, результатом вычисления которого является строка, указывающая путь к файлу;

- <режим> – это одно из ключевых слов:

- input – чтение;

- output – запись с начала (старая информация стирается);

- append – запись (добавление) в конец файла;

- <дескриптор> – идентификатор файла в программе – целое значение в диапазоне [1 - 511].

Инструкция open должна предшествовать всем инструкциям, непосредственно работающим с содержанием файла. Если файл, открываемый в режиме output или append не существует в момент открытия, то он создается в директории, заданной путем.

Пример.

open "u:\c_lections\examples\out.txt" for output as #5

open "u:\c_lections\examples\enter.txt" for input as #6

Инструкция close

Закрывает 1 или более файлов.

Формат:

close [#<дескриптор>][, #<дескриптор>]...

Инструкция close без списка дескрипторов закрывает все открытые файлы.

Пример.

close #5, #6

13.5.2. Работа с файлами Инструкция input

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

Формат:

input # <дескриптор> <переменная>[, <переменная>]...

Пример.

input # 5, x, y

for i=1 to 10

input # 6, arr(i)

next

В список данных нельзя включать имена массивов. Разделители и ограничивающие строковые данные кавычки игнорируются.

Функция input

Читает из файла n символов.

Формат:

input( n, <дескриптор>)

Пример.

input(FileSize, # 5)

В отличие от инструкции input читает все символы, в том числе и разделители.

Инструкция line input

Читает из файла текстовую строку целиком и присваивает ее значение переменной типа string или variant. Текстовая строка ограничена символом перевод строки.

Формат:

line input # <дескриптор>, <переменная>

Пример.

line input # 6, VarString