Стандартные потоки «привязаны» к клавиатуре (cin) и экрану (cout, сегг, clog) и функционируют из командной строки. В настоящее время, когда оконный интерфейс стал повсеместным, стандартные потоки для ввода-вывода информации практически не применяются. Значительно чаще информация организуется в виде файлов, которые тем или иным способом затем обрабатываются программой.
Концепция файлов родилась задолго до концепции потоков. Файл — это поименованная порция информации, размещенная на внешнем носителе. В настоящее время файлы размещаются практически исключительно на магнитных дисках, хотя так было не всегда (до распространения магнитных дисков основным носителем информации являлись магнитные ленты). Для управления множеством файлов в состав операционной системы входит файловая система. Именно файловая система [55, 56, 57, 58] определяет, каким образом именуются файлы и где они размещаются. В разных операционных системах — разные правила именования файлов. Даже в разных версиях одной операционной системы эти правила бывают различными.
Поскольку мы работаем в Windows, надо разобраться, как именуются файлы в этой операционной системе и как представляются имена файлов в программе на С++.
В программе на С++ имя файла обычно представляется либо константой-строкой, либо переменной — символьным массивом, в который помещается строка-имя файла. Тип string использовать нельзя! Имя файла должно удовлетворять следующим ограничениям:
• нельзя использовать символы
>< |
• имена могут содержать пробелы и символы кириллицы;
? имена нечувствительны к регистру, однако регистр в именах сохраняется (то есть если файл был создан с именем file, то в таком виде имя и будет выводиться, но в то же время к файлу можно обращаться и по имени FILE, и по имени File).
Имя файла состоит из собственно имени и расширения, которое может и отсутствовать. Количество символов в расширении не регламентируется, но по традиции, оставшейся от MS-DOS, обычно задают от одного до трех символов. Если расширение есть, оно отделяется от имени точкой. Расширение часто (но не всегда) определяет тип файла.
Полное имя файла включает еще путь к файлу. Путь — это идентификатор диска и имя каталога, где размещен файл. Если ни диск, ни каталог не заданы, то по умолчанию обычно принимается тот каталог, откуда была запущена программа. Для получения/изменения текущего диска/каталога операционная система (не С++!) предоставляет ряд API-функций. Длина полного имени ограничена Windows-константой МАХ_РАТН. ПРИМЕЧАНИЕ
Диски обозначаются латинской буквой A-Z (или a-z) с двоеточием. Идентификатор А (и В тоже!) обычно обозначает дискету. Вложенные каталоги в имени отделяются друг от друга символом-разделителем. По традиции в Windows разделителем является символ обратной косой черты (\). В программе на С++ этот символ необходимо писать дважды (\\), так он является специальным символом. Однако допускается использовать и обычную косую черту (/). Разделитель должен отделять диск от имени каталога.
Хотите хорошо ездить на мотоцикле - http://supermoto-russia.ru/photo.php для вас.
Примеры имен: