Void WriteColor (тип_Спектр C )
{ switch (C) { case красный: cout << "красный"; break; case оранжевый: cout << "оранжевый"; break; case желтый: cout << "желтый"; break; case зеленый: cout << "зеленый"; break; case голубой: cout << "голубой"; break; case синий: cout << "синий"; break; case фиолетовый: cout << "фиолетовый"; break; default: cout << "Неправильный цвет\ n"; } } Числовые значения констант перечисления можно изменять, например, так:
enum тип_Спектр { красный, оранжевый, желтый = 10, зеленый, голубой, синий, фиолетовый };
После такого переопределения числового значения константы желтый, числовые значения всех констант будут следующими:
Перечисления обычно используются для того, чтобы сделать тексты программ более понятными, и как следствие, избавиться от дополнительных возможных ошибок. Организация работы с файлами Потоки для работы с файлами Общие сведения Для работы с файлами в языке C++ используются потоки трех видов: · поток ввода (класс ifstream); · поток вывода (класс ofstream); · поток ввода-вывода (класс fstream). Класс ifstream используется для выполнения чтения данных из файлов. Поток ofstream – для записи данных в файлы. Поток fstream – для чтения и записи данных в файлы. Для использования этих классов потоков необходимо в программу включить заголовочный файл < fstream >. Для выполнения любых работ с файлом необходимо: 1) создать поток одного из классов файловых потоков; 2) связать созданный поток с конкретным файлом (открыть конкретный файл для работы);
3) выполнить необходимые действия с файлом (чтение / запись данных); 4) закрыть файл. Пример работы с файлом
bool Запись_данных_в_текстовый_файл (char * FileName) { ofstream File; // Создали поток вывода для записи данных в файл File.open (FileName); // Открыли файл if (! File. is_ open ()) // Проверили удалось ли открыть файл { cout << "Открыть файл не удалось! \ n"; return 0; // Файл не открыт } for (int I = 1; I <= 10; ++ I) // Записываем 10 строк в файл File << "Строка " << I << endl; File. close (); // Закрываем файл return 1; }
bool Чтение_данных_из_текстового_файла (char * FileName) { ifstream File; // Создали поток ввода для чтения данных из файла File. open (FileName); // Открыли файл if (! File. is_ open ()) // Проверили удалось ли открыть файл { cout << “Открыть файл не удалось! \ n”; return 0; // Файл не открыт } char S[100]; while (! File. eof ()) // Читаем все строки из файла и выводим их на экран { File.getline (S, 100); cout << S << endl; } File.close (); // Закрываем файл return 1; }
Int main () { setlocale (0, ""); if (Запись _данных _в _текстовый _файл ("E:\\test.txt")) Чтение_данных_из_текстового_файла(" E:\\ test. txt"); system("pause"); return 0; }
Работа с файлами Создание потока, открытие и закрытие файла
Либо последовательность из двух инструкций:
ofstream File; - создали поток File. open (" E:\\ test. txt"); - связали поток с файлом (открыли файл)
Либо так:
ofstream File (" E:\\ test. txt"); - создали поток и открыли файл
После открытия файла необходимо обязательно проверить открылся ли файл. Если файл открыть не удалось, то переменная потока (File) принимает значение false, если файл открыт – true. Следовательно, проверку успешного открытия файла можно выполнит так:
if (! File) // Ошибка
Еще один способ – использовать функцию потока is_ open (), которая также возвращает логическое значение в зависимости от результата операции открытия файла:
if (! File. is_ open ()) // Ошибка
Файл закрывается с помощью функции потока close ():
File. close (); Подробнее об открытии файла. Каждый поток использует свой вариант функции open. Их прототипы выглядят так:
void ifstream::open (const char * FileName, ios::openmode Mode = ios::in); void ofstream::open (const char * FileName, ios::openmode Mode = ios::out | ios::trunc); void fstream::open (const char * FileName, ios::openmode Mode = ios::in | ios::out);
Первый параметр определяет имя открываемого файла (представляет собой массив символов). Второй параметр определяет режим открытия файла. Этот параметр имеет значение по умолчанию, то есть является необязательным. Возможные значения этого параметра: · ios:: app – при открытии файла на запись (поток ofstream) обеспечивает добавление всех выводимых в файл данных в конец файла; · ios:: ate – обеспечивает начало поиска данных в файле начиная с конца файла; · ios:: in – файл открывается для чтения из него данных; · ios:: out – файл открывается для записи данных в файл; · ios:: binary – открытие файла в двоичном режиме (по умолчанию все файлы открываются в текстовом режиме); · ios:: trunc – содержимое открываемого файла уничтожается (его длина становится равной 0). Эти флаги можно комбинировать с помощью побитовой операции ИЛИ (|). Если файл открывается без использования функции open, эти флаги тоже можно использовать: fstream File (" E:\\ test. txt", ios:: out | ios:: app); - файл открывается на вывод с добавлением записываемых данных в конец файла.
Запись и чтение данных в текстовых файлах Запись и чтение данных в текстовых файлах ничем не отличается от способов ввода-вывода данных с помощью потоков cin и cout. Методы форматирования вывода и вводы данных остаются такими же (флаги форматирования, манипуляторы, функции потоков). Необходимо помнить, что при использовании операции >> для чтения данных из текстовых файлов, процесс чтения останавливается при достижении пробельного символа (так же как и в потоках cin и cout). Поэтому для чтения строки текста, содержащей несколько слов, необходимо, как и раньше, использовать, например, функцию getline ().
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|