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

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


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

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

Выпуск № 555
от 17.10.2006, 06:05

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


Вопрос № 58511: MS Visual C++ Я столкнулся с проблемой. При считывании с текстового файла переменной n (смотрите в приложении) он считывает код символа, а не переводит ее в числовой ('5' = 53 и тому подобное). Как правильно считать с текстового файла информацию,...
Вопрос № 58536: Здравствуйте Эксперты. У меня есть 5-ть потоков каждый поток выводит свой номер(1-5) мне нужно их синхронизовать чтобы выводилась последовательность всегда одинаковая 1,2,3,4,5. Синхронизовать с помощью симафора. Пошарился в нете нашел пару приме...
Вопрос № 58566: Доброе время суток! Подскажите плз где можно скачать русский msdn если его нет дайте плз ссылку на инсталяцию последней его версии английской! благодарю!...

Вопрос № 58.511
MS Visual C++
Я столкнулся с проблемой. При считывании с текстового файла переменной n (смотрите в приложении) он считывает код символа, а не переводит ее в числовой ('5' = 53 и тому подобное). Как правильно считать с текстового файла информацию, если известно, что ее значение в диапазоне 0..255?

Приложение:

Отправлен: 11.10.2006, 13:13
Вопрос задал: Pranovich Ivan Vladimirovich (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Хватов Сергей
Здравствуйте, Pranovich Ivan Vladimirovich!

Если вы читаете в переменную типа char, туда действительно считывается символ (на самом деле байт - это существенно если у вас не однобайтная кодировка), если в int, то - число, представленное в файле в символьном виде.

При выводе производятся обратные действия, и хотя вы смело можете работать с переменной n как с числом, то при выводе вы получите опять символ. Если вам нужно вывести код - преобразуйте его в int

Приложение:

Ответ отправил: Хватов Сергей (статус: 6-ой класс)
Ответ отправлен: 11.10.2006, 14:03
Оценка за ответ: 5

Отвечает: Mystic
Здравствуйте, Pranovich Ivan Vladimirovich!
Дело в том, что перегруженная версия оператора >> для типа char считывает символ и сохраняет в нее ее код, в этом случае char не считается числовым типом данных. Для считывания числа используйте один из числовых типов (short, int, long ...)
Ответ отправил: Mystic (статус: 1-ый класс)
Ответ отправлен: 11.10.2006, 22:53
Оценка за ответ: 4


Вопрос № 58.536
Здравствуйте Эксперты.
У меня есть 5-ть потоков каждый поток выводит свой номер(1-5) мне нужно их синхронизовать чтобы выводилась последовательность всегда одинаковая 1,2,3,4,5. Синхронизовать с помощью симафора. Пошарился в нете нашел пару примерчиков но не до конца понимаю как это сделать. Раскажите принцип и если покажите пример кода буду очень благодарен. Builder C++ 6.0
Отправлен: 11.10.2006, 17:03
Вопрос задал: Gray (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Sergey A. Wedensky
Здравствуйте, Gray!

Думаю, можно поступить так.
1. В каждом потоке создаем семафор с начальным и максимальным значениями счетчика, равными количеству потоков (т.е. создаем, конечно, в первом, который успеет, остальные получат дескриптор имеющегося).
2. Далее ждем.
После возврата функции WaitForSingleObject счетчик семафора уменьшается на 1.
3. Получаем значение счетчика (при этом, правда, придется его увеличить обратно на 1).
Если значение равно (количеству потоков минус номер потока), можно выводить свой номер (->5).
4. Если нет, снова ждем (->2).
5. Еще раз ждем, чтобы уменьшить счетчик (мы ведь его увеличили при вызове ReleaseSemaphore). Выводим номер.
А условие в (3) будет выполнено, только когда всем потокам с меньшим номером уже удалось пробиться.

Должно работать, как кажется, правда не проверял...
Удачи!

Приложение:

Ответ отправил: Sergey A. Wedensky (статус: 5-ый класс)
Ответ отправлен: 11.10.2006, 18:19
Оценка за ответ: 5
Комментарий оценки:
Спасибо буду разбираться.


Вопрос № 58.566
Доброе время суток!
Подскажите плз где можно скачать русский msdn
если его нет дайте плз ссылку на инсталяцию последней его версии английской!
благодарю!
Отправлен: 11.10.2006, 21:14
Вопрос задал: sexy (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Madproger
Здравствуйте, sexy!

Русскую версию ты навряд ли найдешь
Если только частично он-лайн на www.rsdn.ru

А вот последняя английская версия
http://www.microsoft.com/downloads/details.aspx?familyid=373930CB-A3D7-4EA5-B421-DD6818DC7C41&displaylang=en
---------
И будет вам счАстиЕ!
Ответ отправил: Madproger (статус: 9-ый класс)
Ответ отправлен: 11.10.2006, 21:47


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

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

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

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

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


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


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное