Вопрос № 30333: Помогите пожалуйста сделать программу. Дано натуральное число, нужно осуществить его циклический сдвиг на два знака вправо. Например, дано число 123456, в результате сдвига получится 561234....Вопрос № 30342: Здравствуйте.
Скажите пожалуйста как считывать из файла и записывать файл по битово или по байтово, существуют ли в языке С++ какие либо операторы или функции, позволяющие записать файл побитово?
Допустим у меня есть файл, но в нём встречаютс...Вопрос № 30378: Здр. ув. эксперты!
Подскажите где можно скачать хороший
самоучитель или книгу по Microsoft Visual C++?
Спасибо!...Вопрос № 30381: Здравствуйте у меня такой вопрос я начал изучать C++ у меня был простенький компилятор DEV C++ в катором я компилировал прграммы и они работали в досе ну пока простенькие а сейчас купил visual studio 2005 PROFESIONAL EDITION И НЕ МОГУ В НЕМ РАЗОБРАТС...
Вопрос № 30.333
Помогите пожалуйста сделать программу. Дано натуральное число, нужно осуществить его циклический сдвиг на два знака вправо. Например, дано число 123456, в результате сдвига получится 561234.
Отправлен: 27.11.2005, 21:29
Вопрос задал: Commandos (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Jadd
Здравствуйте, Commandos!
Ну, все просто. Нужно просто преобразовать целое к строке и сдвигать как массив символов. Вот как я это сделал (см. приложение). Проблема в том, что int - 4 байта, а char -, как правило, один - достаточно для того, чтобы в него поместить одну цифру. В конце строку можно преобразовать обратно к целому, но это не должно вызвать затруднений. Пиши, если возникнут затруднения. Удачи.
Приложение:
--------- Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Специалист)
Отправлен: 27.11.2005, 22:12
Отвечает: koshi
Здравствуйте, Commandos!
Код в приложении. На здоровье)
Приложение:
--------- Don't worry by groovy
Ответ отправил: koshi (статус: 2-ой класс)
Отправлен: 27.11.2005, 22:17
Отвечает: Raptor1
Здравствуйте, Commandos!
Для беззнакового целого числа N
double i=1;
while(i<=(double)N)
i*=10;
i/=100;
if(i<1) // если число состоит менее чем из 3 цифр
i=1;
N=N/100+(N-((N/100)*100))*i;
Ответ отправил: Raptor1 (статус: Студент)
Отправлен: 29.11.2005, 23:42
Вопрос № 30.342
Здравствуйте.
Скажите пожалуйста как считывать из файла и записывать файл по битово или по байтово, существуют ли в языке С++ какие либо операторы или функции, позволяющие записать файл побитово?
Допустим у меня есть файл, но в нём встречаются только русские символы и вместо того чтобы тратить по 8 бит на символ, я могу потратить 6 бит на символ.
Я долго мучался и написал несколько функций которые превращают 4 символа в 3.
Может можно как-то сделать проще? Т.е. обойти преобразования в битовые массивы, перевод байта в набор бит, в соответствии со словарём, обратное преобразование из битовых массивов в байт... Другими словами записать и считать из файла бит, а не байт.
Если же нельзя сделать проще, пожалуста приведите несколько примеров как записать/считать в/из файла n количество байт.
Отвечает: estiGi
Здравствуйте, Константин Константинович!
Ну, если я делал учет русских букв (а также других нестандартных символов), я бы использовал по 16 бит на символ, т.е. юникод, что всегда стараюсь и делать, все же у нас нет ограничения на 64 кб бинарника и винты уже далеко не двухсотметровые :)
А если уж сильно хочется, то надо писать свою обвертку на запись/чтение, наподобия MFC-шного CArchive. Тогда вычисляй, сколько на самом деле занимает строка/число и пиши себе хоть 1 байт, хоть три для любого типа. Главное читать потом правильно, по тем же правилам.
Фукнций для записи данных менее одного байта не знаю, да и вряд ли такие есть, хотя бы потому, что в языке минимальный размер типа - 1 байт. Как ты предпологаешь передать данные в функцию? Можно конечно, но такой геморрой того не стоит.
А насчет чтения/записи вообще, см. приложение (пишу код по памяти, так если чего...)
Приложение:
Ответ отправил: estiGi (статус: 8-ой класс)
Отправлен: 28.11.2005, 00:18 Оценка за ответ: 4 Комментарий оценки: Дело в том что данная операция не только "сжимает" файл но и шифрует его, чего я почти добился, забыл только как записывать и считывать из файла... Пример я ещё не опробовал, но думаю он правильный.
Вопрос № 30.378
Здр. ув. эксперты!
Подскажите где можно скачать хороший
самоучитель или книгу по Microsoft Visual C++?
Спасибо!
Отправлен: 28.11.2005, 13:56
Вопрос задал: BatanRus (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Zitz
Здравствуйте, BatanRus!
Вместо чтения занимательных книжек, лучше посети www_ПЕРВЫЕ ШАГИ_ru или подобные проекты, где собственно по шагам можно изучасть твою любимую среду программирования ;-)
А из книжек могу посоветовать - раз уж объектно ориентированные среды привликают - Шилд`яру он очень хорошо описывает принципы объектно ориентированного программирования на С++, а без этого никуда!
Ответ отправил: Zitz (статус: 1-ый класс)
Отправлен: 28.11.2005, 16:29
Вопрос № 30.381
Здравствуйте у меня такой вопрос я начал изучать C++ у меня был простенький компилятор DEV C++ в катором я компилировал прграммы и они работали в досе ну пока простенькие а сейчас купил visual studio 2005 PROFESIONAL EDITION И НЕ МОГУ В НЕМ РАЗОБРАТСЯ ПОДСКАЖИТЕ ПОЖАЛУЙСТА как мне это лучше сделать может книги какие есть или русификтор для этой среды
Отправлен: 28.11.2005, 14:16
Вопрос задал: Joni (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Dmitriy
Здравствуйте, Joni!
посмотрите ответ на вопрос № 30102 я там подробно описал все книги, которые можно почитать
http://rusfaq.ru/?Step=search&ID0=5&ID1=3&ID2=19
(Если Visual C++, то
Майкл Хаймен, Visual C++ для чайников
Аравинд Корера, Стивен Фрейзер Visual C++.Net для разработчиков
и общие книги:
Джефф Элджер, Библиотека программиста
Дж.Либерти, Энциклопедия C++ для пользователя
В общем книг то много и хороших и плохих, только вот выбираются они для конкретно поставленной задачи)
а вообще Dev C++ 4.9.9.0 (или как они себя обозвали Dev C++ 5) весьма неплох для создания простых форм, библиотек, API и прочего...
--------- В жизни нет ничего невозможного
Ответ отправил: Dmitriy (статус: 3-ий класс)
Отправлен: 28.11.2005, 14:25 Оценка за ответ: 5
Отвечает: Jadd
Здравствуйте, Joni!
Ух. Задачка. Книги есть, их много. Можно поискать в eMule. Можно сходить на forum.netz.ru. Там после регистрации откроется книжный раздел, а там и книги качать. Вообще, если собираешься под винду писать, то почитай про внутреннюю архитектуру винды (Чарльз Петцольд например писал). Не читай пока никого типа Рихтера - будет сложновато - оставь на потом). А, ну и вопросы сюда шли. Например, мне :). Короче, удачи.
ЗЫ: Русификатор не надо (да и есть ли он?).
--------- Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Специалист)
Отправлен: 28.11.2005, 21:42 Оценка за ответ: 5