Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АЛТАЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ.docx
Скачиваний:
11
Добавлен:
06.08.2019
Размер:
163.01 Кб
Скачать

Примеры

Откроем файл:

nf=fopen("test.txt")

Переместимся на 11 символов с начала файла:

=fseek(nf,11)

Считаем шесть байт:

? fread(nf,6)

Результат: строка

Переместимся еще на 10 байт относительно текущей позиции указателя:

? fseek(nf,10,1)

Результат: 27

Мы первым оператором seek сместились на 11, после считывания 6 байт сдвинулись еще на 6 и, наконец, после последнего сдвига на 10 оказались на 27 байте.

Считаем дальше 5 байт:

? fread(nf,5)

Результат:  файл

Теперь сдвинемся на 0 позицию с конца файла:

? fseek(nf,0,2)

Результат: 262

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

Закроем файл:

=fclose(nf)

4. Запись в файл.

Функция res = fwrite(nf,s,n1) предназначена для записи n1 символов из строки s в файл со ссылочным номером nf.

Примеры

Откроем файл test.txt в режиме чтение-запись:

nf = fopen('test.txt',2)

Переместим указатель на 10 позицию:

pos=fseek(nf,10)

Результат: 10

Запишем начиная с 10 позиции строку "=====":

k=fwrite(nf,"====",4)

Результат: 4

Снова сместимся на 10 позицию по отношению к началу файла:

pos=fseek(nf,10)

Результат: 10

Считаем из файла 10 символов:

s=fread(nf,10)

Результат: ====ока те

В результате выполнения записи четыре символа с 10 позиции заменились на знак "=".

Закройте файл.

5. Работа со строками файла.

Для работы с файлами в текстовом режиме предназначены функции работы со строками fgets() и fputs().

Функция чтения строки fgets() возвращает последовательность байтов из файла или порта связи, открытого с помощью файловой функции низкого уровня. fgets(nf, n1). Параметр nf - задает номер канала файла, из которого функция fgets() будет возвращать данные. Параметр n1 - задает количество байт, возвращаемых функцией FGETS().

Функция fgets()возвращает данные, начиная от исходной позиции указателя файла и кончая символом возврата каретки, если он попадает в число n1 байтов.

Если аргумент n1 опущен, fgets() по умолчанию возвращает всю строку или (если строка очень длинная) 254 байта. Символы возврата каретки (CR) и перевода строки (LF) не возвращаются в составе строки.

Примеры

Открываем файл:

nf=fopen('test.txt')

Считываем первую строку:

s1=fgets(nf)

? s1

Результат: Это первая строка тестового файла

Считываем вторую строку:

? fgets(nf)

Результат: Это вторая строка

Считываем первые 5 символов 3-ей строки:

? fgets(nf,5)

Результат: Далее

Считываем остаток третьей строки:

? fgets(nf)

Результат: все символы клавиатуры

При попытке считать больше символов чем в текущей строке, возвращается строка:

? fgets(nf,100)

Результат: 1234567890

Закрываем файл:

=fclose(nf)

Функция записи строки в файл fputs(nf, s1 , n1) записывает символьную строку с возвратом каретки и переводом строки в файл или порт связи, открытый с помощью файловой функции низкого уровня.

Параметр nf - задает дескриптор файла, соответствующий файлу или порту связи, куда функция fputs() собирается писать данные. Параметр s1 - задает символьное выражение, которое функция fputs() пишет в файл или порт. Число n1 - задает количество символов в выражении s1, которые нужно записать в файл или в порт.

Если аргумент n1 опущен, функция fputs() запишет в файл или в порт все символьное выражение s1 целиком. Если значение n1 меньше количества символов в выражении s1, в файл или порт записывается только n1 символов. Если значение n1 равно числу символов в выражении s1 или больше его, в файл или порт записывается все выражение. Функция fputs() возвращает число байтов, записанных в файл или порт. Если fputs() не в состоянии выполнить запись в файл или порт по той или иной причине, возвращается 0.