11. Ввод и вывод
Зачем это надо?
Создавать достаточно серьезные программы мы научились. Однако все коммерческие продукты рассчитаны не на однократные сеансы работы с пользователем, а скорее на долговременное сотрудничество. При таком сотрудничестве в промежутках между сеансами программа запоминает на диске самую разную информацию. C++Builder, например, помнит все настройки ваших проектов; текстовый редактор хранит популярные стили оформления; игра позволяет восстановить ранее отложенную партию и т. д. А реально эти программы сохраняют на жестком диске еще множество самых разных данных, о которых пользователь и не подозревает.
Все промежуточные настройки и прочая информация хранятся в файлах. Умение работать с файлами — открывать и закрывать их, записывать и считывать данные, копировать, переименовывать и удалять файлы, — в обязательном порядке требуется при создании серьезных приложений. Обойтись без этого в современном программировании практически невозможно.
Как устроена работа с файлами в Си++
В самом языке C++ никаких средств для работы с файлами нет. Эти средства можно найти в стандартных библиотеках, причем их насчитывается довольно много, хотя все они предназначены только для одного — записи информации из переменных в файл и считывания информации из файла в переменные.
Разнообразие средств ввода/вывода связано с тем, что некоторые из них достались в наследство от Си, другие были созданы специально с ориентацией на возможности Си++, третьи связаны с особенностями системы Windows и т. д.
226