Qraizer

Advanced Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору stdlib - не совсем то. Скорее conio.h, но лучше всего - MSDN. Там с консолью можно сделать всё. Начни с какого-нибудь WriteConsole(), а там по ссылкам доберёшься до всего остального. Но от англицкого никуда не денешься. Добавлено: Dayver2009 Да что там, вот обратное преобразование Код: #include <iostream> #include <fstream> #include <bitset> #include <vector> #include <string> int main() { std::ifstream inFile ("output.txt"); std::ofstream outFile("restore.txt", std::ios::binary); std::vector<char> buf(256); std::string line; do { std::getline(inFile, line); if(line.length() > 2048 || (line.length() % 8) != 0) return std::cerr << "Invalid input file format" << std::endl, 1; for(int i=0; i<line.length()/8; ++i) buf[i]=static_cast<char>(std::bitset<8>(line.substr(i*8, 8)).to_ulong()); outFile.write(&buf[0], line.length()/8); } while(inFile.good()); } | А ты точно разобрался? STL, конечно, рулит, но без более-менее представления, как оно там всё устроено, понимания не получится. Твои вопросы как раз и заставляют усомниться. Поясню-таки кое-что. Класс std::bitset<> собственно и инкапсулирует эти самые математические действия по преобразованию. Вообще-то он предназначен для работы с битовыми полями фиксированной (зато неограниченной) длины. Имеет конструкторы, позволяющие сразу заполнить его битовым полем на основе строки или unsigned long. Во втором случае проинициализироваными окажутся только младшие std::numeric_limits<unsigned long>::digits биты, остальные, если блина поля больше, будут сброшены, но для твоих char-ов хватит. Кроме того, он имеет методы, позволяющие получить хранимое им битовое поле в виде unsigned long (опять-таки если поле не длинее того же предела) или строки. Этим-то я и воспользовался. Раз класс международно стандартизирован, зачем изобретать свои велосипеды. Впрочем, твой препод может иметь другое мнение.  | Всего записей: 613 | Зарегистр. 08-08-2006 | Отправлено: 20:33 18-11-2006 | Исправлено: Qraizer, 20:59 18-11-2006 |
|