Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KPIYaP_OTVET_3.rtf
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
540.37 Кб
Скачать

If (stream.Rdstate() & ios::eofbit)…

Второй способ получения информации о статусе связан с функциями:

  • bool bad()-возвращает true, если установлен соответствующий флаг;

  • bool eof()-возвращает true, если установлен соответствующий флаг;

  • bool fail()-возвращает true, если установлен соответствующий флаг;

  • bool good()-возвращает true, если ошибок не обнаружено;

Функция clear()

void clear ( iostate flags = ios::goodbit);

Предназначена для сброса битовых флагов ошибок. По умолчанию все флаги ошибок сбрасываются. Набор флагов можно задать произвольно:

stream.clear(ios::badbit | ios::failbit | ios::eofbit)

3.08

Открытие файла.

fstream::open ( const char* filename, ios::openmode mode = ios::in | ios::out );

ofstream::open (const char* filename, ios::openmode mode = ios::trunc | ios::out);

ifstream::open (const char* filename, ios::openmode mode = ios::in );

Еще один вариант открытия - использование конструктора файлового потока.

fstream my_file("my_file.txt");

Флаги открытия файла.

  • app - добавление данных ведется в конец файла

  • ate - установка указателя на конец файла

  • binary - установка бинарного доступа к файлу ( не производится преобразование управляющих последовательностей )

  • in - открыть файл для чтения данных

  • out - открыть файл для записи данных

  • trunc - очистить файл при открытии

Закрытие файла.

myfile.close();

Особенности:

  • эта функция разрывает связь файла с данным потоком, при этом все оставшиеся в буфере данные заисываются в файл

  • не возвращает ничего

3.09

Запись в файл текстовых данных.

Запись данных в текстовый файл осуществляется с помощью оператора <<, связанного с потоком файлового вывода.

Для записи в поток одного символа можн оиспользовать ф-цию putback().

Istrea& putback( char ch );

Особенности:

  • метод файлового потока

  • предназначена для возврата символа ch в файловый поток istream

  • возвращает ссылку на поток istream

#include <iostream>

#include <fstream>

using namespace std;

Int main()

{

fstream f;

f.open("myfile.txt", ios::out | ios::trunc);

If (!f.Is_open()) return 1;

f << "string" << " " << 55.555 << ' ' << 256 << endl;

f.close();

return 0;

}

3.10

Чтение данных из файла в текстовом режиме.

Чтение данных из текстового файла осуществляется с помощью оператора >>, связаного с потоком файлового ввода.

Особенности:

  • файл должен быть открыт в текстовом режиме;

  • символы - разделители при ввводе игнорируются

#include <iostream>

#include <fstream>

using namespace std;

int main()

{

fstream f;

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

if (!f.is_open()) return 1;

char s[80]; double d; int i;

f >> s >> d >> i;

cout << s << " " << d << " " << i;

f.close();

return 0;

}

// ===============

string 55.555 256

// ===============

Для чтения данных из текстового файла можно также использовать :

Функция чтения символа get ()

istream& get ( char& ch );

Особенности:

  • метод файлового потока

  • предназначена для чтения символа из файлового потока istream и записи его в переменную ch

  • возвращает ссылку на istream

Перегруженная фукнция чтения символа.

istream& get (char* buf, streamsize num);

istream& get (char* buf, streamsize num, char delim);

Особенности:

  • метод файлового потока

  • предназначена для чтения num-1 символов из потока и записи их в массив buf

  • чтение выполняется пока не: будет считаны все num-1 символы, обнаружен символ перехода на следующую строку, обнаружен символ конца файла, обнаружен символ delim ( стоп-символ из потока не считывается! )

  • массив символов закрывается нулем

  • возвращает ссылку на поток

Функция чтения строки символов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]