Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Функция-элемент getline

Функция-компонент close

Функция-компонент open

 

Прототип функции open

 

void open (const char* filename, int mode, int m = filebuf::openprot);

 

Параметр filename задает имя открываемого файла. Параметр mode указывает режим ввода/вывода. Далее следует список аргументов для mode, описанных в заголовочном файле FSTREAM.H:

- in открыть поток для ввода,

- out открыть поток для вывода,

- ate установить указатель потока на конец файла,

- app открыть поток для добавления,

- trunk удалить содержимое файла, если он уже существует (bc++5),

- nocreate инициировать ошибку, если уже не существует,

- noreplace инициировать ошибку, если файл уже существует,

- binary открыть в двоичном режиме.

 

Пример 1.

// открыть поток для ввода

fstream f;

f.open("simple.txt", ios::in);

 

// открыть поток для вывода fstream f;

fstream f;

f.open ("simple.txt", ios::out);

 

// открыть поток ввода/вывода для двоичных данных fstream f;

fstream f;

f.open("simple.txt", ios::in | ios::out | ios::binary);

 

Внимание: Классы файловых потоков предусматривают конструкторы, которые выполняют действия (и имеют такие же параметры) функции-компонента open.

Функция close закрывает поток и освобождает использовавшиеся ресурсы. Эти ресурсы включают буфер памяти для операции потокового ввода/вывода.

 

Прототип для функции close:

 

void close();

 

Пример 2.

 

fstream f;

// открыть поток

f.open ("simple.txt", ios:: in);

// работа с файлом

// закрыть поток

f.close ();

 

Stream-библиотека C++ включает в себя набор основных функций, которые контролируют состояние ошибки потоковой операции. Эти функции включают следующие:

1. Функция good() возвращает ненулевое значение, если при выполнении потоковой операции не возникает ошибки. Объявление функции good: int good();

2. Функция fail() возвращает ненулевое значение, если при выполнении потоковой операции возникает ошибка. Объявление функции fail: int fail();

3. Перегруженная операция! применяется к экземпляру потока для определения состояния ошибки.

Stream-библиотека C++ предоставляет дополнительные функции для установки и опроса других аспектов и типов ошибок потока.

ПОСЛЕДОВАТЕЛЬНЫЙ ТЕКСТОВЫЙ ПОТОК ВВОДА/ВЫВОДА

 

Функции и операции последовательного текстового ввода/вывода являются довольно простыми. Вы уже имели дело со многими из них в предыдущих уроках. Эти функции и операции включают:

- Операция извлечения из потока << записывает строки или символы в поток.

- Операция помещения в поток >> читает символы потока.

- Функция getline читает строку из потока.

 

 

Прототипы функции-элемента getline:

 

istream& getline (char* buffer, int size, char delimiter = '\n');

 

istream& getline (signed char* buffer, int size, char delimiter = '\n');

 

istream& getline (unsigned char* buffer, int size, char delimiter = '\n');

 

Параметр buffer - это указатель на строку, принимающую символы из потока. Параметр size задает максимальное число символов для чтения. Параметр delimiter указывает разделяющий символ, который вызывает прекращение ввода строки до того, как будет введено количество символов, указанное в параметре size. По умолчанию параметру delimiter присваивается значение '\n'.

 

Пример 3.

 

fstream f;

char textLine[MAX];

f.open("sample.txt", ios::in);

while (!f.eof()) {

f.getline(textLine, MAX);

cout << textLine << endl;

}

f.close();

 

Рассмотрим пример. В листинге 10.1 приведен исходный код программы TRIM.CPP. Программа выполняет следующие задачи:

- Выдает запрос на ввод имени входного текстового файла.

- Выдает запрос на ввод имени выходного текстового файла. (Программа проверяет имена этих файлов на совпадение, и в случае положительного результата повторяет запрос на ввод имени выходного файла).

- Читает строки из входного файла и удаляет из них <висящие> пробелы.

- Записывает эти строки в выходной файл и также в стандартное окно вывода.

 

<== предыдущая лекция | следующая лекция ==>
Вопросы и ответы. Что случится, если я объявлю конструктор по умолчанию, конструктор копии и другие конструкторы в защищенной области. | Листинг 10.1. Исходный код программы TRIM.CPP
Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 369; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.