
- •Проверил ______________________ Беляков с.Л.
- •Тема №1 «Тождество, качество программ»
- •Тема №2 «Основные этапы технологии разработки программ»
- •Тема №3 «Исполнение программ вычислительными устройствами»
- •Лекция №5 «Поразрядные операции над числами»
- •Лекция №6 «Передача параметров функциям по значению или по указателю»
- •Лекция №7 «Классы»
- •Лекция №8 «Ввод-вывод информации в файлы».
- •Лекция №9 «Перемещение указателя файла».
- •Лекция №10 «Технология поиска информации»
- •Лекция №11 «Технология поиска»
- •Лекциия №12 «Сортировка»
- •Лекция №13 «Обработка ошибок в работе программ»
- •Лекция №14 «Управление памятью»
- •Лекция №15 «Кодирование и отображение информации»
- •Лекция №16 «Глобальные переменные и пространства имен»
- •Лекция №18 «Тестирование программного кода»
Лекция №9 «Перемещение указателя файла».
Перемещение указателя в открытом файле выполняется с использованием метода .seekp. Метод включает два параметра:
Первый это число со знаком, указывающее на количество позиций смещения. Одна позиция – один байт.
Второй параметр – это константа класса, указывающая на «точку отсчета» смещения (ios::end – относительно конца файлы, ios::beg – относительно начала, ios::cur – относительно текущей позиции).
Перемещение за пределы файла не возможно, указатель будет помещен соответственно в последней либо в первой позиции. Ошибки при этом не генерируется.
При обработке текстов находящихся в файлах следует учитывать наличие «невидимых» символов, которые не отображаются пользователю, но используются при отображении текста на устройствах. Перемещение указателя в файле должно учитывать наличие таких символов.
OD – перевод строки. OA – возврат каретки.
Технология обработки информации в фалах.
1)Открыть файл и считать его содержимое в переменные программы. Если файл слишком велик, то обработка ведется фрагментами. Например, по одной строке или по одной записи.
2)Закрыть файл. Выполнить обработку, подготовить выходные данные. Если объем выходных данных велик, то каждая подготовленная порция записывается последовательно.
3)Открыть выходной файл.
4)Записать выходные переменные в файл.
5) Закрыть выходной файл.
Строковые потоки.
Строковые потоки - это объекты, которые воспроизводят поведение файловых потоков, но не связаны с внешними устройствами, а создают последовательности символов в оперативной памяти. Используя функции и операторы чтения и записи в потоке можно создавать и обрабатывать тесты.
Чтобы использовать потоки нужно указать #include <sstream> .
Извлечь строку из строкового потока можно с помощью метода .str()
Переменной типа string присваивается значение строки из потока.
Чтение из строкового потока.
Дата и время в программах на С++
Время в любой цифровой системе отсчитывается с использованием счетчиков. Всякая программа использующая время должна получать значения счетчика в любой требуемый момент времени. В программах на языке С существует библиотечная функция с помощью которой получают текущее время в секундах прошедших с 1 января 1970 года.
Time_t time( time_t *timer)
Time принимает в качестве аргумента указатель на переменную time_t и в эту переменную записывается время момента вызова функции.
Непосредственно использовать значения времени можно для вычисления временных интервалов. Разность любых значений это длина интервала в секундах.
CurTime=CurTime +3600*24*7 момент времени смещенный на неделю вперед.
Время в виде структуры
tm.
Стандартная библиотека в С++ использует структуру tm для привычного представления времени. Это представление включает в себя: текущее время с точностью до секунд, день, месяц, год. Получить это представление можно имея значение в секундах.
Функция localtime предназначена для получения времени в виде структуры tm. Результат возвращается указателю на структуру tm.
Все элементы структуры
tm являются целыми числами, т.е. можно
использовать в арифметических выражениях.
Выполнить преобразование времени в виде структуры tm число секунд позволяет функция mktime(). В качестве параметра принимается указатель на структурную переменную, а возвращается число типа time_t.
Функция asctime преобразует время в секундах в символьную строку нерусифицированную.