го, розробники класів можуть розширювати цю бібліотеку для читання і запису нових типів даних.
Операції введення/виводу виконуються за допомогою класів istream (потоковий ввід) і ostream (потоковий висновок). Третій клас, iostream, є похідним від них і підтримує двонаправлений введення/висновок. Для зручності в бібліотеці визначено три стандартних об'єкта-потоку: - об'єкт класу istream, відповідний стандартному вводу. У загальному випадку він дозволяє читати дані з терміналу користувача; - об'єкт класу ostream, відповідний стандартному висновку. У загальному випадку він дозволяє виводити дані на термінал користувача; - об'єкт класу ostream, відповідний стандартному висновку для помилок. У цей потік ми направляємо повідомлення про помилки програми.
Висновок здійснюється, як правило, за допомогою переобтяженого оператора зсуву вліво ( lt; lt;), а введення - за допомогою оператора зсуву вправо ( gt; gt;):
· string - заголовний файл з класами, функціями і змінними для організації роботи з рядками.
· locale - заголовний файл стандартної бібліотеки мови програмування С, який використовується для завдань, пов'язаних з локалізацією. Для підтримки російської мови.
· iomanip - бібліотекареалізует інструменти для роботи з форматуванням виводу.
· fstream - бібліотека, призначена для роботи з файлами.
· Windows.h - заголовний файл, в якому зберігаються структури, необхідні для роботи з даними файлу.
· vector - заголовний файл для роботи з вектором.
· sstream - заголовний файл з класами, функціями і змінними для організації роботи з рядками типу sstream.
· lmcons.h - заголовний файл з функцією для визначення імені користувача в облікового запису windows.
· conio.h - цей заголовний файл оголошує кілька бібліотечних функцій для роботи з консольним введенням і виведенням програми (функція getch ()).
В основі реалізації команди ls, лежить функція FindFirstFile і структура WIN32_FIND_DATA.
Функція FindFirstFile шукає в директорії файл або піддиректорію з ім'ям, яке відповідає зазначеному імені. Повертаються значення:
Якщо функція успішна, повертається дескриптор пошуку, використовуваний в наступних викликах FindNextFile або FindClose.
При помилці повертається INVALID_HANDLE_VALUE.
Функція FindFirstFile відкриває десріптор пошуку і повертає інформацію про перший файлі, з ім'ям, яке відповідає заданим умовам. Наступний список описує деякі особливості пошуку:
· Пошук проводиться тільки поімені файлу, а не з будь-яких його атрибутам, таким як час і тип файлу.
· Пошук допускає довгі і короткі імена файлу.
· Після отримання дескриптора пошуку, використовують функцію FindNextFile для пошуку інших файлів, що відповідають тим же умовам.
· Коли дескриптор пошуку більше не потрібен, він закривається за допомогою функції FindClose.
Для того, щоб переглянути файли або отримати атрибути файлової директорії, робіть наступне:
· Для перегляду файлів в кореневій директорії можна скористатися C: * і пожашним переходом по директоріях використовуючи FindNextFile.
· Для отримання атрибутів кореневій директорії, потрібно скористатися сяGetFileAttributes.
Структура WIN32_FIND_DATA описує файл, знайдений функцією FindFirstFile, FindFirstFileEx або FindNextFile. Синтаксис даної структури такий: struct _WIN32_FIND_DATA {dwFileAttributes;ftCreationTime;ftLastAccessTime;ftLastWriteTime;nFileSizeHigh;nFileSizeLow;dwReserved0;dwReserved1;cFileName[ MAX_PATH]; cAlternateFileName [14];
} WIN32_FIND_DATA, * PWIN32_FIND_DATA;
Використовувані члени структури:
§ dwFileAttributes
Атрибути шуканого файлу. Цей член структури може складатися з одного або декількох нижченаведених значень.
Атрибути і їх призначення.
АтрібутПредназначеніеFILE_ATTRIBUTE_ARCHIVEФайл або каталог - архівні. FILE_ATTRIBUTE_DIRECTORYДескріптор ідентифікує каталог.FILE_ATTRIBUTE_HIDDENФайл або каталог скритие.FILE_ATTRIBUTE_READONLYФайл або каталог тільки для читання. FILE_ATTRIBUTE_SYSTEMФайл або каталог системні.
§ ftLastWriteTime
Структура FILETIME. Для файлу, структура встановлює, коли востаннє був запис у файл, він обрізався або листувався (наприклад функціями WriteFile або SetEndOfFile). Ця дата й час не оновлюються тоді, к...