Показать сообщение отдельно
Старый 21.02.2008, 20:39     # 2
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Полагаю Вам нужно перегрузить
std::ostream& operator<<(std::ostream& s, bitset<8000>& b)

Ну как-то так:
Код:
#include <fstream>
#include <iostream>
#include <bitset>

using namespace std;

typedef std::bitset<8000> myBitset;

std::ostream&
operator<<(std::ostream& s, myBitset& b){
std::string tmpStr(b.to_string());
	for (size_t i = 0; i<tmpStr.length(); i+=8*sizeof(char)){
	std::bitset<8*sizeof(char)> tb(tmpStr, i, 8*sizeof(char));
	s << (char)tb.to_ulong();
	}
return s;
};

int main(){

myBitset bs(65);
ofstream myfile;
myfile.open ("example.bin");
myfile << bs;
myfile.close();

return 0;
}
GCC 4.2.1, Linux


Цитата:
Сообщение от crawler Посмотреть сообщение
А, самый цимес. В связи с большим размером сета, .to_ulong() кидает throw.
Самый что?? А что исключение - так резонно вполне, переполнение на таком размере очень даже вероятно.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума