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

h02841.jpg

Рис. 12.2

Вывод содержимого текстового файла

Для того чтобы изменения можно было записывать не в конец файла, как это делалось до сих пор, а как-то иначе, необходимо использовать файловый указатель. *

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

Текущую позицию файлового указателя можно узнать, вызвав функцию ftell (). Эта функция возвращает значение текущей позиции в файле, имеющее тип long int.

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

В листинге 12.6 функции ftell о и fseek о используются для перемещения указателя к первому символу слова chip для того, чтобы переписать содержимое этой строки.

h02842.jpg

ttinclude <stdio.h> ftinclude <string.h>

int main()

{

FILE *fHandle;

char StrBuf[80] ;

char NameCmp[] = "Chip\n";

long int CurPos;