Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 259
от 03.12.2005, 19:57

Администратор:Калашников О.А.
В рассылке:Подписчиков: 246, Экспертов: 37
В номере:Вопросов: 4, Ответов: 7


Вопрос № 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 количество байт.
Отправлен: 27.11.2005, 23:33
Вопрос задал: Константин Константинович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: 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


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Яндекс Rambler's Top100 hotlog_js="1.0"; hotlog_r=""+Math.random()+"&s=314124&im=101&r="+escape(document.referrer)+"&pg="+ escape(window.location.href); document.cookie="hotlog=1; path=/"; hotlog_r+="&c="+(document.cookie?"Y":"N"); hotlog_js="1.1";hotlog_r+="&j="+(navigator.javaEnabled()?"Y":"N") hotlog_js="1.2"; hotlog_r+="&wh="+screen.width+'x'+screen.height+"&px="+ (((navigator.appName.substring(0,3)=="Mic"))? screen.colorDepth:screen.pixelDepth) hotlog_js="1.3" hotlog_r+="&js="+hotlog_js; document.write("HotLog")

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.cplus
Архив рассылки
Отписаться
Вспомнить пароль

В избранное