конструктор
Std::fstream Файловый поток ввода/вывода. Поток связывается с файлом при создании (вызов конструктора), либо при вызове метода open. Для использования необходимо подключить заголовочный файл <fstream>. Методы: конструктор fstream(); Создает поток, не связанный ни с одним файлом. explicit fstream (const char* filename, ios_base::openmode mode = ios_base::in | ios_base::out); explicit fstream (const string& filename, ios_base::openmode mode = ios_base::in | ios_base::out); Создает поток,связанный с файлом с именем filename. Поток открывается в режиме mode. Параметры: filename – имя файла mode – список флагов, определяющий режим открытия потока
Список флагов разделяется символом «|».
Пример: // fstream constructor. #include <fstream> // std::fstream int main () { std::fstream fs ("test.txt", std::fstream::in | std::fstream::out); // i/o operations here fs.close(); return 0; }
void open (const char* filename, ios_base::openmode mode = ios_base::in | ios_base::out); Связать поток с файлом (открыть файл) файлом с именем filename в режиме mode. Параметры: filename – имя файла mode – список флагов, определяющий режим открытия потока
Список флагов разделяется символом «|».
Пример: // fstream::open / fstream::close #include <fstream> // std::fstream int main () { std::fstream fs; fs.open ("test.txt", std::fstream::in | std::fstream::out | std::fstream::app); fs << " more lorem ipsum"; fs.close(); return 0; }
void close(); Закрыть поток (завершить работу с файлом). При этом несохраненные ранее данные записываются в связанный с потоком файл. Пример: // fstream::open / fstream::close #include <fstream> // std::fstream int main () { std::fstream fs; fs.open ("test.txt", std::fstream::in | std::fstream::out | std::fstream::app); fs << " more lorem ipsum"; fs.close(); return 0; }
bool is_open() const; Проверка, был ли открыт файл. Возвращает: true – файл был открыт false – файл не был открыт. Пример: // fstream::is_open #include <iostream> // std::cout #include <fstream> // std::fstream int main () { std::fstream fs; fs.open ("test.txt"); if (fs.is_open()) { fs << "lorem ipsum"; std::cout << "Operation successfully performed\n"; fs.close(); } else { std::cout << "Error opening file"; } return 0; }
ostream& put (char c); Вставить (записать) символ c в поток. Пример: // typewriter #include <iostream> // std::cin, std::cout #include <fstream> // std::ofstream int main () { std::ofstream outfile ("test.txt"); char ch; std::cout << "Type some text (type a dot to finish):\n"; do { ch = std::cin.get(); outfile.put(ch); } while (ch!='.'); return 0; } istream& read (char* s, streamsize n); Прочитать n символов из потока и записать в массив s. Параметры: s – указатель на массив, куда будут сохранены прочитанные символы. n – количество считываемых символов.
Пример: // read a file into memory #include <iostream> // std::cout #include <fstream> // std::ifstream int main () { std::ifstream is ("test.txt", std::ifstream::binary); if (is) { // get length of file: is.seekg (0, is.end); int length = is.tellg(); is.seekg (0, is.beg); char * buffer = new char [length]; std::cout << "Reading " << length << " characters... "; // read data as a block: is.read (buffer,length); if (is) std::cout << "all characters read successfully."; else std::cout << "error: only " << is.gcount() << " could be read"; is.close(); //...buffer contains the entire file... delete[] buffer; } return 0; }
ostream& write (const char* s, streamsize n); Записать массив данных в поток. Параметры:
bool eof() const; Признак, достигнут ли конец файла. Возвращает: true – достигнут. false – не достигнут.
ostream& seekp (streampos pos); ostream& seekp (streamoff off, ios_base::seekdir way); Установить курсор в заданную позицию. Параметры: pos – позиция для установки. Тип streampos может быть преобразован в любой целочисленный тип,и наоборот. off – смещение. Тип streamoff – целое число со знаком. Offset value, relative to the way parameter. way – каким способом считать смещение. принимает значения:
Пример: // position in output stream #include <fstream> // std::ofstream int main () { std::ofstream outfile; outfile.open ("test.txt"); outfile.write ("This is an apple",16); long pos = outfile.tellp(); outfile.seekp (pos-7); outfile.write (" sam",4); outfile.close(); return 0; } streampos tellp(); Возвращает позицию курсора. Пример: // position in output stream #include <fstream> // std::ofstream int main () { std::ofstream outfile; outfile.open ("test.txt"); outfile.write ("This is an apple",16); long pos = outfile.tellp(); outfile.seekp (pos-7); outfile.write (" sam",4); outfile.close(); return 0; }
|