Справочник по C/C++
Пример использования потоков

Основные используемые функции

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;
}

При чтении текстовых файлов с использованием оператора >> имейте в виду, что могут происходить преобразования некоторых символов. Например, пробельные символы опускаются. Чтобы не допустить ненужного преобразования символов, необходимо открыть файл для двоичных операций ввода-вывода и использовать двоичные функции ввода-вывода.






Нет комментариев.



Оставить комментарий:
Ваше Имя:
Email:
Антибот: *  
Ваш комментарий: