Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Лысаков. Основы программирования

Лысаков. Основы программирования (Лекции (2017)), страница 10

PDF-файл Лысаков. Основы программирования (Лекции (2017)), страница 10 Программирование (85821): Лекции - 2 семестрЛысаков. Основы программирования (Лекции (2017)) - PDF, страница 10 (85821) - СтудИзба2021-01-26СтудИзба

Описание файла

Файл "Лысаков. Основы программирования" внутри архива находится в следующих папках: Лекции 2017, Лекции 2017. PDF-файл из архива "Лекции (2017)", который расположен в категории "". Всё это находится в предмете "программирование" из 2 семестр, которые можно найти в файловом архиве НГУ. Не смотря на прямую связь этого архива с НГУ, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 10 страницы из PDF

Таким образом, мы пришли к одному важному принципу,относящемуся к системе ввода/вывода языка С: все потоки одинаковы, афайлы — нет.Если файл может поддерживать запросы на местоположение (указательтекущей позиции), то при открытии такого файла указатель текущейпозиции в файле устанавливается в начало. При чтении из файла (илизаписивнего)каждогосимволауказательтекущейпозицииувеличивается, обеспечивая тем самым продвижение по файлу.Файл отсоединяется от определенного потока (т.е. разрывается связьмежду файлом и потоком) с помощью операции закрытия. При закрытиифайла, открытого с целью вывода, содержимое (если оно есть) связанного84www.phys.nsu.ruс ним потока записывается на внешнее устройство. Этот процесс, которыйобычноназываютдозаписьюпотока,гарантирует,чтоникакаяЧасто используемые функции файловой системы Сfopen()Открывает файлзавершает работу нормально, т.е.

либо main() возвращает управлениеfclose()Закрывает файлоперационной системе, либо вызывается exit(), то все файлы закрываютсяputc()Записывает символ в файлавтоматически. В случае аварийного завершения работы программы,fputc()To же, что и putc()getc()Читает символ из файлаУ каждого потока, связанного с файлом, имеется управляющаяfgetc()To же, что и getc()структура, содержащая информацию о файле; она имеет тип FILE. В этомfgets()Читает строку из файлаfputs()Записывает строку в файлfseek()Устанавливает указатель позиции на определенный байтпомнить, что основная цель такого разграничения — это обеспечитьftell()Возвращает текущее значение указателя в файлеединый интерфейс.

Для выполнения всех операций ввода/вывода следуетfprintf()Для файла то же, что printf() для консолиfscanf()Для файла то же, что scanf() для консолиfeof()Возвращает значение true, если достигнут конец файлаferror()Возвращает значение true, если произошла ошибкаrewind()Устанавливает указатель позиции в начало файлаremove()Стирает файлfflush()Дозапись потока в файлинформация случайно не останется в буфере диска. Если программанапример, в случае краха или завершения путем вызова abort(), файлы незакрываются.блоке управления файлом никогда ничего не меняйте.Если вы новичок в программировании, то разграничение потоков ифайлов может показаться излишним или даже "заумным".

Однако надоиспользовать только понятия потоков и применять всего лишь однуфайловую систему. Ввод или вывод от каждого устройства автоматическипреобразуется системой ввода/вывода в легко управляемый поток.Функции библиотеки ввода-вывода языка С, поддерживающие обменданными с файлами на уровне потока, позволяют обрабатывать данныеразличных размеров и форматов, обеспечивая при этом буферизованныйвводивывод.Такимобразом,поток—этофайлвместес предоставляемыми средствами буферизации.7.2.Основы файловой системыФайловая система языка С состоит из нескольких взаимосвязанныхфункций. Самые распространенные из них показаны в ниже таблице. Дляих работы требуется заголовок <stdio.h>.Заголовок <stdio.h> предоставляет прототипы функций ввода/вывода иопределяет следующие три типа: size_t, fpos_t и FILE. size_t и fpos_tпредставляют собой определенные разновидности такого типа, как целоебез знака.

А о третьем типе, FILE, рассказывается в следующем разделе.Кроме того, в <stdio.h> определяется несколько макросов. Из них кматериалу этой главы относятся NULL, EOF, FOPEN_MAX, SEEK_SET,8586www.phys.nsu.ruSEEK_CUR и SEEK_END. Макрос NULL определяет пустой (null)где имя_файла — это указатель на строку символов, представляющуюуказатель. Макрос EOF, часто определяемый как -1, является значением,собой допустимое имя файла, в которое также может входитьвозвращаемым тогда, когда функция ввода пытается выполнить чтениеспецификация пути к этому файлу. Строка, на которую указывает режим,после конца файла.

FOPEN_MAX определяет целое значение, равноеопределяет, каким образом файл будет открыт. Ниже в таблице показано,максимальному числу одновременно открытых файлов. Другие макросыкакие значения строки режим являются допустимыми. Строки, подобныеиспользуются вместе с fseek() — функцией, выполняющей операции"r+b" могут быть представлены и в виде "rb+".прямого доступа к файлу.Допустимые значения режимУказатель файла7.3.rОткрыть текстовый файл для чтенияввода/вывода языка С. Указатель файла — это указатель на структуру типаwСоздать текстовый файл для записиFILE.

Он указывает на структуру, содержащую различные сведения оaДобавить в конец текстового файлафайле, например, его имя, статус и указатель текущей позиции в началоrbОткрыть двоичный файл для чтенияwbСоздать двоичный файл для записиввода/вывода. Чтобы выполнять в файлах операции чтения и записи,abДобавить в конец двоичного файлапрограммы должны использовать указатели соответствующих файлов.r+Открыть текстовый файл для чтения/записиw+Создать текстовый файл для чтения/записиУказатель файла — это то, что соединяет в единое целое всю системуфайла. В сущности, указатель файла определяет конкретный файл ииспользуется соответствующим потоком при выполнении функцийЧтобы объявить переменную-указатель файла, используйте такого родаоператор:FILE *fp;a+Открытие файла7.4.Функция fopen() открывает поток и связывает с этим потокомопределенный файл.

Затем она возвращает указатель этого файла. Чащевсего(атакжевоставшейсячастиэтойглавы)подфайломподразумевается дисковый файл. Прототип функции fopen() следующий:FILE *fopen(const char *имя_файла, const char *режим);Добавить в конец текстового файла или создать текстовыйфайл для чтения/записиr+bОткрыть двоичный файл для чтения/записиw+bСоздать двоичный файл для чтения/записиa+bДобавить в конец двоичного файла или создать двоичныйфайл для чтения/записиКак уже упоминалось, функция fopen() возвращает указатель файла.Никогда не следует изменять значение этого указателя в программе.

Еслипри открытии файла происходит ошибка, то fopen() возвращает пустой(null) указатель.8788www.phys.nsu.ruВ следующем коде функция fopen() используется для открытия файларежиме w+ все произойдет наоборот: файл будет создан! Более того, еслифайл уже существует, то открытие его в режиме w+ приведет к утрате егопо имени TEST для записи.содержимого, а в режиме r+ оно останется нетронутым.FILE *fp;fp = fopen("test", "w");Хотя предыдущий код технически правильный, но его обычно пишутнемного по-другому:FILE *fp;Из таблицы видно, что файл можно открыть либо в одном изтекстовых, либо в одном из двоичных режимов. В большинствереализаций в текстовых режимах каждая комбинация кодов возвратакаретки (ASCII 13) и конца строки (ASCII 10) преобразуется при вводе всимвол новой строки.

При выводе же происходит обратный процесс:if ((fp = fopen("test","w"))==NULL)printf("Ошибка при открытии файла.\n");символы новой строки преобразуются в комбинацию кодов возвратакаретки (ASCII 13) и конца строки (ASCII 10). В двоичных режимах такиепреобразования не выполняются.Этот метод помогает при открытии файла обнаружить любую ошибку,Максимальное число одновременно открытых файлов определяетсянапример, защиту от записи или полный диск, причем обнаружить еще доFOPEN_MAX. Это значение не меньше 8, но чему оно точно равняется –того, как программа попытается в этот файл что-либо записать. Вообщеэто должно быть написано в документации по компилятору.говоря, всегда нужно вначале получить подтверждение, что функция -fopen() выполнилась успешно, и лишь затем выполнять с файлом другиеоперации.7.5.Закрытие файлаХотя название большинства файловых режимов объясняет их смысл,Функция fclose() закрывает поток, который был открыт с помощьюоднако не помешает сделать некоторые дополнения.

Если попытатьсявызова fopen().Функция fclose() записывает в файл все данные, которыеоткрыть файл только для чтения, а он не существует, то работа fopen()еще оставались в дисковом буфере, и проводит, так сказать, официальноезавершится отказом. А если попытаться открыть файл в режиме дозаписи,закрытие файла на уровне операционной системы. Отказ при закрытииа сам этот файл не существует, то он просто будет создан.

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5224
Авторов
на СтудИзбе
426
Средний доход
с одного платного файла
Обучение Подробнее