Пример использования потоков
Основные используемые функцииunsigned short chunk_id; //Идентификатор блока unsigned int chunk_len; //Смещение //Переменная типа файловый поток чтения, где ifs просто имя переменной ifstream ifs; //Открыть файл с именем fname, как бинарный для чтения и поставить файловый указатель в начало ifs.open(fname.c_str(), ios_base::in | ios_base::binary | ios_base::beg); ifs.is_open(); //Файл открыт? //Считать в переменную chunk_id 2 байта; //причем часть кода "(char*)&" является обязательной и преобразует адрес переменной в указатель на символ ifs.read((char*)&chunk_id,2); //Пропустить chunk_len-6 байт; перейти на chunk_len-6 байт вперед ifs.ignore(chunk_len-6); //Поставить файловый указатель на позицию ifs.tellg()-6 ifs.seekg(ifs.tellg()-6); //Получить текущую позицию файлового указателя ifs.tellg(); //Конец файла? ifs.eof(); Примечание. Вместо методов read и write можно использовать перегруженные операторы ">>" и "<<" соответственно Пример КодаЧтобы выполнить чтение или запись в текстовый файл, достаточно для открытого потока использовать операторы << и >>. Например, следующая программа записывает в файл с именем TEST целое число, значение с плавающей точкой и строку, а затем читает все, что было записано. #include <iostream.h> #include <fstream.h> int main() { ofstream out("test"); if(!out) { cout << "He удается открыть файл.\n\"; return 1; } // Выводим данные. out << 10 << " " << 123.23 << "\n"; out << "Это короткий текстовый файл.\n"; out.closet(); // Теперь читаем все, что было записано, char ch; int i; float f; char str [80]; ifstream in("test"); if(!in) { cout << "He удается открыть файл.\n"; return 1; } in >> i ; in >> f; in >> ch; in >> str; cout << "Вот эти данные: "; cout << i << " " << f <<" " << ch << "\n"; cout << str; in.close(); return 0; } При чтении текстовых файлов с использованием оператора >> имейте в виду, что могут происходить преобразования некоторых символов. Например, пробельные символы опускаются. Чтобы не допустить ненужного преобразования символов, необходимо открыть файл для двоичных операций ввода-вывода и использовать двоичные функции ввода-вывода. |
Нет комментариев. Оставить комментарий: |