- •3.8. Упражнения 49
- •Введение
- •1. Базовые элементы
- •1.1. Комментарии
- •1.2. Функция «main»
- •1.3. Идентификаторы и пространства имен
- •1.4. Типы
- •1.5. Переменные
- •1.7. Константы
- •1.6. Преобразование типов
- •1.8. Потоковый ввод – вывод
- •1.9. Операции
- •1.9.1. Арифметические операции
- •1.9.2. Поразрядные операции
- •1.9.3. Условный оператор
- •1.9.4. Операции отношения
- •1.9.5. Логические операции
- •1.10. Стандартные математические функции
- •1.11. Упражнения
- •2. Базовые конструкции
- •2.1 Ветвление
- •2.1.1. Конструкция «if – else»
- •2.1.2. Конструкция «switch»
- •2.2. Циклы
- •2.2.1. Цикл «for»
- •2.2.2. Цикл «while»
- •2.2.3. Цикл «do – while»
- •2.2.4. Операторы циклов
- •2.2.5. Вложенность
- •2.3. Упражнения
- •2.3.1. Ветвления
- •2.3.2. Циклы
- •2.3.3. Вложенность
- •3. Указатели. Массивы. Структуры
- •3.1. Указатели
- •3.2. Массивы
- •3.2.1. Статические массивы
- •3.2.2. Динамические массивы
- •3.4. Ссылки
- •3.5. Структуры
- •3.6. Объединение
- •3.7. Переопределение типов
- •3.8. Упражнения
- •3.8.1. Статические и динамические массивы
- •3.8.2. Многомерные массивы
- •3.8.3. Строки
- •4. Функции
- •4.1. Простые функции
- •4.2. Рекурсия
- •4.3. Указатели и ссылки
- •4.3.1. Передаваемые параметры
- •4.3.2. Возвращаемые значения
- •4.3.3. Ссылки и структуры в функциях
- •4.3.4. Указатели и массивы в функциях
- •4.3.5. Указатели и ссылки на функцию
- •4.4. Шаблоны функций
- •4.5. Упражнения
- •4.5.1. Простые функции
- •4.5.2. Параметры – ссылки и параметры — указатели
- •5. Стандартные классы
- •5.1. Класс «pair»
- •5.2. Класс «complex»
- •5.3. Класс «string»
- •5.4. Контейнеры. Алгоритмы. Итераторы
- •5.5. Класс «vector»
- •5.6. Упражнения
- •5.6.1. Класс «string»
- •5.6.2. Класс «vector»
- •6. Файловый ввод – вывод
- •6.1. Операции
- •6.2. Методы
- •6.3. Флаги
- •6.4. Двоичный режим
- •6.5. Упражнения
- •Ллитература
6.2. Методы
Среди методов файлового ввода – вывода есть методы работающие не только с отдельными символами или массивами, но и оперирующие строками.
Таблица 6.1. Методы «ifstream».
Название |
Описание |
gcount |
Подсчет символов, прочитанных за последнее обращение к потоку |
get |
Посимвольное чтение |
ignore |
Чтение и удаление строки, ограниченной разделителем или длинной |
peek |
Чтение одного символа из потока без его удаления |
putback |
Возврат последнего прочитанного символа обратно в поток |
read |
Чтение символов из файла |
seekg |
Установка позиции в файле |
tellg |
Определение позиции в файле |
eof |
Определение достижения конца файла |
open |
Открытие файла, ассоциированного с потоком |
close |
Закрытие файла, ассоциированного с потоком |
Таблица 6.2. Методы «ofstream».
Название |
Описание |
flush |
Очистка буфера и запись разделителя строк |
put |
Посимвольная запись |
seekp |
Установка позиции в файле |
tellp |
Определение позиции в файле |
write |
Запись в файл |
open |
Открытие файла, ассоциированного с потоком |
close |
Закрытие файла, ассоциированного с потоком |
Листинг 6.3. Методы файлового ввода – вывода.
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main (void)
{
string buf;
//поток вывода в файл file.txt;
ofstream fout( "file.txt" );
//считывание строки текста;
getline( cin, buf );
//запись считанного текста в файл file.txt;
fout << buf;
//закрытие файла, ассоциированного с потоком;
fout.close();
//поток ввода из файла file.txt;
ifstream fin( "file.txt" );
//чтение из файла file.txt и вывод на экран его содержимого;
while (!fin.eof())
cout << static_cast<char>(fin.get());
cout << endl;
//закрытие файла, ассоциированного с потоком;
fin.close();
return 0;
}
6.3. Флаги
Зачастую, при операциях ввода – вывода возникают те или иные ошибки. Для их обработки используются специальные флаги, доступ к которым осуществляется соответствующими методами.
Таблица 6.3. Флаги ошибок.
Название |
Описание |
badbit |
Недопустимая операция |
eofbit |
Конец файла |
failbit |
Сбой операции |
goodbit |
Отсутствие ошибок |
hardfail |
Критическая ошибка |
Таблица 6.4. Флаговые методы.
Название |
Описание |
eof |
Статус флага eof |
fail |
Статус флага badbit или failbit, или hardfail |
bad |
Статус флага badbit или hardfail |
good |
Статус флага goodbit |
clear |
Снимает все флаги или устанавливает указанный |
