282 Часть II. Программирование на C++

дом диске, имеют строго фиксированный размер. Такие файлы с фиксированной длиной лучше всего создавать как файлы с произвольным доступом. В таком случае можно изменить, например, пятый элемент файла, просто записав новую информацию на его место, не опасаясь за целостность шестого. При работе с файлами с последовательным доступом такой гибкости достичь невозможно.

Файлы с последовательным доступом . Такие файлы следует читать с начала до конца и искать в них необходимую информацию приходится построчно. Программа из листинга 12.4 создает файл с последовательным доступом, листинг 12.5 демонстрирует его чтение, а листинги 12.6 и 12.7 показывают примеры правильной и неправильной модификации файлов с последовательным доступом.

При записи информации в текстовый файл мржно использовать функцию fprintff). Эта функция во всем идентична printfo, за исключением одного параметра: перед строкой формата дополнительно располагается дескриптор потока ввода-вывода (stream handle), в который производится запись.

h02821.jpg

ftinclude <stdio.h>

int main()

t

FILE *fHandle;

// Открыть несуществующий файл на запись как текстовый if ((fHandle = fopen ( "NAMES.TXT", "wt")) == NULL) {

// При ошибке открытия'файла вывести сообщение //и выйти с кодом возврата 1 printf("%s\n","Error Opening File");

return (1) ;

}

// Добавление строк в файл при помощи fprintfO fprintff fHandle, "%s\n", "Nanci");

fprintff fHandle, "%s\n", "Jim");

fprintff fHandle, "%s\n", "David");

fprintf( fHandle, "%s\n", "Chip");

fprintff fHandle, "%s\n", "Cheryl");

fclose ( fHandle) ;

return (0) ;

}

В результате выполнения программы 12.4 будет создан файл Names.txt. Его содержимое может быть просмотрено из командной строки DOS с помощью команды TYPE: