А.А. Белеванцев, С.С. Гайсарян, Л.С. Корухова, Е.А. Кузьменкова, В.С. Махнычев - Алгоритмы и алгоритмические языки (1113416), страница 12
Текст из файла (страница 12)
Функция возвращает в в случае успецпного завершения, г1Я Е вЂ” в случае Опшбки а Гак1ке сели файл Оказался исчерпан до того, как был прочитан хотя бы один символ. Функция ~ЯС';а не имеет своего аналога шзя работы со с 1зндарзными потоками Ввода"Вывода. Так как аналОГичиая фУИКЦНЛ Яеье н1' п)зинимаст параметра В».ве и п)зОДОлжает -1тенис до тех пор, пока есть даиньш, невзирая на границы массива„в который производится чтение.
Поэтому ор1 аннзовать безопасное чтение строк с проверкой их размера невозможно с помощьго функции Яе ге, и необходимо использовать функцнк1 Йя0св из файла восЙГ вместо нее. спаг *в, Е1Д ь -вт сеаш) ФУпкция записывает в файл все символы строки з 1термииальный ' ',О ' в файл не пишется). В случае ошибки функция возврицает ДОГ, в противном случае НС»йтрнцатЕЛЫ1ОЕ ЧИСЛО. ДСИСТВИС фУНКЦии ЗКВИВВЛСНГНО ВЫЗОВУ; Цйимей 1. Дан текстовый файл 1прпг. Вхв, содсргкащий цслььс числа, 1ребустся напечатать сумму Вссх Чисел в нем, Е1ЕЕ *б; Хас В.ж = О, Г.; Хиззлс 1а, ВТВСОГ З01'й, -" и; йСУОЗО !Г1," 1зк.1.0 б 1 "йб ~.'1", Б'са~,* 9.4.
Бинарные фаилы 4 4 При работе с бинарными лаинььми В файле функ~цце:!р ".Це..з/ рован» ~зсапбу:1зз10 б использовать:,.',!зт Я$'- невозможно. поскол! К7у Они иитсппрсти1зулот содсржнмос':!::*,"Г 4': файла как текст — — то ссть послсдоватсльиость строковьзк даниык. Двоичные жс данные записыва10тся роВВО В тоы;,';",;1 Виде, В кот01ляя оии ~~.дставля~~тся в памяти. Например, иа::,::.'~:„'',ф$, аркитектуре 11111С-епд1ап с 32-битным целым Типо~ за1пзсь;:~'';.."з 4, ~ДЖОЙ пе1земсииОЙ цслото типа в файл должна поместить а,-"!;;, Я файл 4 байта, накодяцзиеся и памяти по адресу, ~дс крапится;= Я переменная: первым запивается младкний (нулевой1 байт -' '!44 43-.
последним — старп~ий байт. Анали инно. при чтещЩ ',:;:.„!~ф!', послсдоваГельиые байты файла ииициализи1тдох последоватсльнькс байты и памяти. позтому па Одн~й и ТОЙ .же аркитектуре считанный Ооъект нскоторОГО типа будет раасн прсдваритслыьо записанному в зто место файл~ Обьектм тото -. Если в файле записана послсдовасельность байт с.:: кодами ОЯ34 ОК32 'К33 ОК34, то как текстОВый В., '-':.„.~ъ~~~1 кодировке АБС11 оп будет считан как строка " ' 2 3 4"'. Функция", ':.'!~~Ф! бвсьиз~ с ф01змапьым преооразоваиием "ъо" счиГаст число,'-::~3У~~,"" 1234. В Двоичном же виде должно Сыть С1пцаио число '!1',:"; "ж р ОЯ3433323 ;: = 6757704Ъ7;, Для чтени~ и Записи В из файлов дапнык и двоичном ВИДС ИСПОЛЬЗУЮТСЯ фУИКЦНИ .' Севы И з'ИКУВС, ФуикцпЯ -'и Г Тс е ОоъЯвлснз В стандартной библиотеке Си как :,;яе в Сит!ГС1сопвс тоьц 'рсс, атас -.
Вьае, ,;се с шле1ЯЬ, КТ'а "ГЙ1; Функцил записывает в файл, на который указывает дсскрипт017 тр, пъзеГЯЬ 00ъектОВ, каждыи из которыя имеет размер в з я с, и берст зпз объекты последовательно по адресу ирд' массиВ из 1ъз~слйз злсмснтОВ, В котором кранЯтся Объекты размера вяае. Функция возвракцает количество успецпсо заз1исаиныя злемснтов„что обычно совпадает с "„~ГСЬТЬ, Для записи массива из 10 целых злсмеитов; З.пт.
В1уй! '= 1', .".', 3, 1, 5, ъ, зр з'ТТ.Е ".. =- ~ореп 1 "0~ Ь.1з! и", "иЬ" 1 Тисзтс 1а, азасо~. 11Г1Т1, Тй ° Т); зЬ1Я записи одного числа с Оцьуе или структуры: з1 сцс рОТОЬ 1 "'ОЬ х, у; въ сцсв ОО,' ОС рь = 1",, 31, +Р =-. ЬРТ; ООГЗЬус '3и 1 ье ~р, В ВОСТ 1Б хцсв роуп 1 У ур 1 Ти; Ее 1ац, в' аеот. <01, Т, Т1; Функция б первый йр1~мспз КОТО РУК> ОУДУТ П КВЖДЫЙ ИЗ КОТ Воза(ьзп(астся кол оыл дс1стигну1 ко ВОЗВРВ1ЦВСМОС ЗН т1от факт для пров ТЕДО ИМСЕТ ТТКГ Ж Р~,.
Т ТКВЗЫВВЕЗ ОСЛСДОВйТСЛЬИО СЧ ОРЫХ НСЦ ф имеет раза айлй или п(ьзи е буде1 мень КОРРСКТИОСТ1 Для сч1пыВйиия назад з11п ЧИСлй С1: Р. ЕЕ бкеа 100 баееК*, и ~ Тюзиции, указан значения ок:(010 дрсса любых объектов первый параметр дю,"Саби Ф О"'"Т - Ьт1 итти1ы 01ае1ао ОоьскХОВ ''2!':;; 1ер 3 1. Ве. АналОГичиО)1,.:.,' читанных объектов. Если,';:,"',',.:=."'Г: зош1ьз друГйя ощиокй, ТО,:~„".*~~" п1С пкьйл1ьч Исп01льзуйте::;:";::," 'Й: СРКИ 1 ВВОДЯ. ".$'-'' ИСВННО1 0 МВССИВВ й 1ЬЛИ .;*;:;~ЧТ б. ПОЗ ОЦЦОН~фОВВНУВ ЯЗ фйЦЛ6 ЦПЯ ЕВСЕЕ устйнйвливйст 1екущу10 ПОЗИПИ10 а:,,::С!В:,:,, 1К1ЕЕ "'з1.соат, 1опо отбаег., знйчение текущей позиции, измеряемое в:;::;;:::.;~~,"',',.";1 айтйх), получйстся добйвтенисм о т1зек оййтов К;:;-':(:;::„.;!ф';." 1юй пйрйз1ет ром 01 1 ", -' и Еозм11жиые: ';~~к(Ь!ж.
' "~~~1~,! -';:,Ф,-'=,'. РЕЕК ЕЕТ вЂ” смещспие ОтсчитыайстсЯ 01носкпсльно нйчйлй фййлй (парймстр о б ГВВ1 Должа~ быть иеотрицатслсн); ЕЕЕК Е~..Р, — СМЕ1ЦСИИС ОТСЧИТЫВВ1,ТСЯ 01ТНОСИТСЛЬНО тску1Цсй позиции В файле (пйрймстр о( баек можст иметь лк160Й знйк); — ЕЕЕК ЕИ — СЫЕИТЕИИС 1ТТСЧИТЫВВСТСЯ ОТНОСИПЛЬНО 10нцй файла (о 1'.
бай-. долл си 1б1 п1 м1 ны1ье либо р ц1си нуля). Константы РЕЕК ЕЕТ, РЕЕК Е((Д, ЕЕЕК ЕК(П также Описаны В ВСО1 о. Еп В слу'1ае успещнопо завсрщспия баее1; Возврй1цает О, В пр«зив1к1м сл)час--(, Узнать значение текущей позиции В файле молок1 при 1юкющи функции ЕС 011; 1опд ВЕС11(Е1'Е и;.тей1п); Функция возвра1цает зий11С11ие текущеЙ позиции (смещение В байтах отиосч1тельно нйчалй фййлй) или -1 В СЛУЧВС ОШИОКИ.
ХХ(лс11ср '. Определить и напечаьйть размер файла пооб ~ б 1опй з1йс; б .-- Еореп ("11р01.. ВК1.", '" с" ); За 1к 1-, ЧИ»(ь б ЕДЕ К ЕИ(З Вузе =- бее'1 ;:О" ОВЕ (, )," рс1пс б ( Рйаыер файла — Я10 баит.10", ВЗВС(; 01ВЕ ( ре ос: ', Не Ыделоо~ оекоыз'ь файн )ооо; ВКЗ 'тп"' З~д(зят~ 1, Фато1 е, скь соде)нкя~ зва целык Яйсла, Требуется дописать нх сумму в конец ма1 о же файла. з.пб же(п ) яо.б) Епеа, Ь; 1рг'пяЕ '" Еа" ая'-).
хеспеп 0; хпс 010(св )Ет ппахтяпес1 оЬа хпс кено'0 НЬЕ2е !)с ЗЕ ."; е в о 2 С е.~-; кеспкп хево1 нико 30ЙЯВ 2. '1'ребоВалось оп заданного файла, уже открыто1 КОЛИЧЕСТВО ДЕСЯТйЧНЫХ ЦИФР В ниже онисаний праВйльно реийтк 1(икз йп(уе в данной функции достижении конца файла знане , функцнвя которая для' '::::.- '.~а Яану З гда не завеошйтся: п)зй .,':-'!Е1(яз' КОНСТЯНТЫ ЕОЕ ОУДЕТ приведено к типу нов(0пеб о) а, В момент прйсваиВанйя с 1:бесо 1'.), й г1оскольку ага койстанта тзтрйцатеяьна. То такое после г|рйведеййя ее зйак йзмеййтся, й восле))у~о~нее с(завнение с исходным значением КО." будет ложно, япс а)т(151 в )Е21Е *Е) вхяпеб о)тах с з З.ПС ЯЕВО' С =- Э; ИЬхХе ()о = Ейевс (Е)) != ЕОЕ) 0)писание атой функций также оп1йбочно, Константа еОе не прннадлеяозз тйпу спек (ее тип — ' и'.).
В оолынинстве реализаций знанение еОе 1тавно "1„И цикл успегнно завергаиься т1о достижении конца файла. Однако он заверн1ится и прй нтении символа. код кото)того прй приведении к типу в:10гтеб опек окажется равным 1)апрймер, при обработке файла в кодировке %')пботяз-1251 первая же буква "Я" (имекзтцая код 255) завернпп работу такого цикла (поскольку (В( опеб она г) 255 =-'-1), хпа айй(св (ЕХ~Е "Е) хпе зпс яево10 = 0; ИЬхХе 1(..
--- Ере'. е 10) ) ! = ЕО1') 5+(.1п1ас50 тевойс+тз 101 В й))ОГРЙЫМ 9.6Д. Определить последовательпос) ь снмВ 6.'. Распечатать ю строку «ввод КН. ИЗВЕСТНО, Ч ОД)П' 3«) СИМВОЛОВ. 6.4. й файле згн сел, требуется: В) ОПРЕДЕЛИ )ЧЕСКУ)О ИРОГРЕС Г) ОПРСДЕЛИ ЧССКУ)0 ПРО)"РЕС ть, сОстаВляк)т лн зтн чис)га сию; Д) ОПРЕД<)ЛИ ательпости явля 9,6. ЗйдзмУ дйЯ сВмбспзОЯлтВльноВО -:! ~ИЬЦ6йцЯ задачах 9.6Д.— 9.6.9, требуется написать полную.'":~~.-,": ос)раоатывщощую )екстовый 9)а)6) с именем,';;,",,:;;;. ХС. сколько рйз В файле Вст))счается 'р" ОЛОВ Йос Все строки фаЙЛВ, содержаптие'::::.".:.",, '.~~ нтся с кчавнаттр))) В качестве то длина строки В файле не'::.;:у м '.):1 3.
Определить, какая строка Является самой::!.':„-ф~.-",, В фанле, );слн ТЙКНХ строк несколько, то Выддгв ',„~Ю,-;;. ЛИХ. )исана н,пустая последОВателыюсть .—:.:.-:,.-=:.-,. а) найти наиоольщес из зтих чисел; б) подсчитать количество четных чисел: ' ф~~~),';" ть, состаВляют ли ')ти числа СИК);. ть, сколькО чисел зтОЙ ,".")г~':„ Отся точными квадратаый. 5.
Дописать В конеп файла строку я'ТМ1ЗН. ;:::4:::: 9.6,6. Создать файл с именем сору. ).ХС вЂ” копию )аданнОГО файла. 9.6.;). Удалить из файла Все пустые строки, 9.0.8, г) файле записана непустая последовательность пслых чисел. являкяцихся числами Фибоначчн. Брнписй)ь сщс одно. ОчереднОС числО Фибонйччи. 9.6.9. Изменить файл следующим образом: перед каждОЙ строкои добавить ее номер и пробел. Длила )проки В ИСХОДИОМ файле не превоскодит ЗО символов.