Предыдущий пост -
Следующий пост -

std::ifstream

Рубрика: fstream, Дата: 13 August, 2013, Автор:

Узкий класс ifstream потока вывода из файла.

typedef basic_ifstream<char> ifstream; как мы видим это шаблон типа basic_ifstream<char>, он видимо аналогичен  basic_ifstream.

Функции и члены и типы наследованные от istream и ios_base: event, event_callback, failure, fmtflags, Init, iostate, openmode, seekdir, sentry.

Рассмотрим теперь открытые члены и функции:

constructors

#include <iostream>
using std::cout;
using std::endl;
#include <fstream>
using std::ifstream;

int main()
{
	ifstream f("test.txt", ifstream::in);

	char c=f.get();
	while(f.good())
	{
		cout <<c;
		c=f.get();
	}

	f.close();

	return 0;
}

 

ifstream::open()

Функция открывает файл.

#include <iostream>
using std::cout;
#include <fstream>
using std::ifstream;

int main()
{
	ifstream f;
	f.open("test.txt",ifstream::in);

	char c=f.get();
	while(f.good())
	{
		cout <<c;
		c=f.get();
	}

	f.close();
	
	return 0;
}

 

ifstream::is_open()

Функция проверяет открылся файл или нет.

#include <iostream>
using std::cout;
#include <fstream>
using std::ifstream;

int main()
{
	ifstream f;
	f.open("test.txt",ifstream::in);

	if(f.is_open())
	{
		char c=f.get();
		while(f.good())
		{
			cout <<c;
			c=f.get();
		}
	}
	else
	{
		cout <<"don't open file\n";
	}

	f.close();
	
	return 0;
}

 

ifstream::close()

Функция закрывает поток.

#include <iostream>
using std::cout;
#include <fstream>
using std::ifstream;

int main()
{
	ifstream f;
	f.open("test.txt",ifstream::in);

	
		char c=f.get();
		while(f.good())
		{
			cout <<c;
			c=f.get();
		}
	

	f.close();
	
	return 0;
}

 

ifstream::rdbuf()

Возвращает буфер потока.

#include <iostream>
using std::cout;
using std::endl;
#include <fstream>
using std::filebuf;
using std::ifstream;

int main()
{
	ifstream f("text.txt",ifstream::binary);

	filebuf* buf=f.rdbuf();//возврат буфера.

	size_t size=buf->pubseekoff(0,f.end,f.in);
	buf->pubseekpos(0,f.in);

	//выделение памяти
	char* buffer=new char[size];

	//получить данные с файла
	buf->sgetn(buffer,size);

	f.close();//закрытие потока

	//вывод результата
	cout.write(buffer,size);

	//высвобождение памяти
	delete[] buffer;

	return 0;
}

 

ifstream::swap()

функция обменивает местами два потока.

#include <iostream>
using std::cout;
#include <fstream>
using std::ifstream;

int main()
{
	ifstream f("test.txt",ifstream::in);
	ifstream f1;

	f1.swap(f);

	char c=f1.get();
	while(f1.good())
	{
		cout <<c;
		c=f1.get();
	}

	f1.close();

	return 0;
}

 

Функции наследованные от istream: operator>>, gcount, get, getline, ignore, peek, read, readsome, putback, unget, tellg, seekg, sync.

Функции и члены наследованные от ios: good, eof, fail, bad, operator!, operator bool, rdsate, setstate, clear, copyfmt, fill, exceptions, imbue, tie,rdbuf, narrow, widen.

Функции и члены наследованные от ios_base: flags, setf, unsetf, precision, width, imbue, getloc, xalloc, iword, pword, register_callback, sync_width_stdio.

И функция которая просто отдельно swap()

#include <iostream>
using std::cout;
#include <fstream>
using std::ifstream;

int main()
{
	ifstream f("test.txt",ifstream::in);
	ifstream f1;

	swap(f,f1);

	char c=f1.get();
	while(f1.good())
	{
		cout <<c;
		c=f1.get();
	}

	f1.close();

	return 0;
}

[youtube]http://www.youtube.com/watch?v=fT8ElbZTGdg[/youtube]

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *