Программирование >>  Структурное программирование 

1 ... 255 256 257 [ 258 ] 259 260 261 ... 342


Терминология

сегг (стандартный небуферизованный

вывод ошибок) cin (стандартный ввод) clog (стандартный буферизованный

вывод ошибок) cout (стандартный вывод) алфавит база данных байт бит

выходной поток двоичный разряд десятичная цифра заголовочный файл fstream.h заголовочный файл strstream.h закрыть файл запись

иерархия данных имя файла класс fstream класс ifstream класс istream класс istrstream класс ofstream класс ostream класс ostrstream ключ записи конец файла

манипулятор потока ends маркер конца файла набор символов

начальная точка позиционирования ios::beg

начальная точка позиционирования ios::cur

начальная точка позиционирования ios::end

обработка потока строк

поле

поток

поток ввода

режим открытия файла ios::app режим открытия файла ios::ate режим открытия файла ios::in режим открытия файла

ios::nocreate режим открытия файла

ios::noreplace режим открытия файла ios::out режим открытия файла ios::trunc символьное поле система управления базой

данных (СУБД) специальный символ указатель позиции файла усечение существующего файла файл

файл последовательного доступа файл произвольного доступа форматированный ввод-вывод

в память функция-элемент close функция-элемент open функция-элемент operator void * функция-элемент operator! функция-элемент seekg класса

istream

функция-элемент seekg класса ostream

функция-элемент tellg класса istream функция-элемент tellp класса ostream

функция-элемент потока строк str числовое поле

Типичные ошибки программирования

14.1. Открытие существующего файла для вывода (ios::out) в то время, как пользователь на самом деле желает сохранить этот файл; содержимое файла отбрасывается без предупреждения.

14.2. Использование неверного объекта класса ofstream при ссылке на файл.

14.3. Не открывается файл перед попыткой сослаться па него в программе.



f) Функция-элемент классов файловых потоков

fstream, ifstream и ostream закрывает файл.

g) Функция-элемент класса istream читает символ из заданного потока.

h) Функции-элементы класса istream и

читают строку из заданного потока.

i) Функция-элемент классов потоков istream и ostream открывает файл.

j) Функция-элемент класса istream обычно используется

в приложениях для чтения данных из файла произвольного доступа.

к) Функции-элементы и классов istream

и ostream устанавливают соответствующий указатель позиции в заданную позицию соответственно во входном и выходном потоках.

14.2. Укажите, справедливы или нет следующие утверждения. Если они ошибочны, укажите почему.

a) Функция-элемент read не может быть использована для чтения данных из объекта ввода cin.

b) Программист обязан явным образом создавать объекты cin, cout, cerr и clog.

Хороший стиль программирования

14.1. Открывайте фай-и для только для ввода (используя ios::in), если содержимое файла не должно быть модифицировано. Это способствует предотвращению непреднамеренной модификации содержимого файла. Это пример принципа наименьших привилегий.

Советы по повышению эффективности

14.1. Закрывайте явным образом каждый файл, как только станет понятным, что программа не будет обращаться к этому файлу снова. Это поможет сократить используемые ресурсы, которые программа продолжает потреблять длительное время после того, когда ей уже не надо обращаться к данному файлу. Этот прием делает программу также более ясной.

Упражнения для самопроверки

14.1. Заполнить пробелы в следующих утверждениях:

a) Все элементы данных, обрабатываемые компьютером, в конечном итоге сводятся к комбинациям .

b) Наименьший элемент данных, который может обрабатываться компьютером, называется .

c) - это группа связных записей.

d) Цифры, буквы и специальные символы называются .

e) Группа связных файлов называется .



c) Программа должна явным образом вызывать функцию close, чтобы закрыть файл, связанный с объектами ifstream, ofstream или fstream.

d) Если указатель позиции файла показывает на позицию в последовательном файле, отличную от начала файла, то для считывания с начала файла он должен быть закрыт и заново открыт.

e) Функция-элемент write класса ostream может записывать в стандартный поток вывода cout.

f) Данные в файле последовательного доступа всегда обновляются без перезаписи соседних данных.

g) Чтобы найти требуемую запись, необходимо просмотреть все записи в файле произвольного доступа.

h) Записи в файлах произвольного доступа должны быть одной длины.

i) Функции-элементы seekg и seekp проводят поиск относительно начала файла.

14.3. Предполагайте, что каждый из нижеперечисленных операторов относится к одной и той же программе.

a) Напишите оператор, который открывает файл oldmast.dat для ввода; используйте объект inOldMaster класса ifstream.

b) Напишите оператор, который открывает файл trans.dat для ввода; используйте объект inTransaction класса ifstream.

c) Напишите оператор, который открывает (или создает) файл new-mast.dat для вывода; используйте объект outNewMaster класса ofstream.

d) Напишите оператор, который считывает запись из файла oldmast.dat . Запись состоит из целого accountNum, строки пате и числа с плаваюш;ей запятой currentBalane; используйте объект inOldMaster класса ifstream.

e) Напишите оператор, который считывает запись из файла trans.dat . Запись состоит из целого accountNum и числа с плавающей запятой dollar Amount; используйте объект inTransaction класса ifstream.

f) Напишите оператор, который заносит запись в файл new-mast.dat . Запись состоит из целого accountNum, строки name и числа с плавающей запятой currentBalance; используйте объект outNewMaster класса ofstream.

14.4. Найдите ошибку и покажите, каким образом исправить ее в перечисленных ниже высказываниях:

a) Файл payables.dat , на который ссылаются с помощью объекта outPayable класса ofstream, не должен быть открыт.

outPayable << account << company << endl;

b) Следующий оператор должен читать запись из файла payables.dat . Объект inPayable класса ifstream ссылается на этот файл.



1 ... 255 256 257 [ 258 ] 259 260 261 ... 342

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика