Модератор: Модераторы разделов
-
Zeus
- Сообщения: 694
Сообщение
Zeus »
Код: Выделить всё
#include <iostream>
int
main ()
{
unsigned char oneByte = 0x31;
std::cout << oneByte << std::endl;
return 0;
};
Такой код выведет в консоль символ '1'.
А хотелось бы что-нибудь вроде:
std::cout << std::выводить_число_а_не_символ_блин << oneByte << std::endl;
Что-то пока не нашёл такой манипулятор.
-
Alxn1
- Сообщения: 402
- Статус: Красноглазик со стажем
- ОС: Mavericks
Сообщение
Alxn1 »
А если так:
std::cout << static_cast< unsigned int >( oneByte ) << std::endl;
-
Zeus
- Сообщения: 694
Сообщение
Zeus »
Всякие приведения типов - это понятно, что прокатит.
Я думал манипулятор есть.
-
Alxn1
- Сообщения: 402
- Статус: Красноглазик со стажем
- ОС: Mavericks
Сообщение
Alxn1 »
А черт его знает, но вроде как нет такого манипулятора:
http://www.halpernwightsoftware.com/stdlib...ckref.html#io10
Что, наверное, логично, так как в данном случае простое приведение типов с этим замечательно справляется.
-
Zeus
- Сообщения: 694
Сообщение
Zeus »
Ну ладно, пусть тогда остаётся приведение.
Спасибо.
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Сообщение
serzh-z »
Zeus
В STL нет, но в BOOST есть boost::numeric_cast (и много других шаблонов для кастования).
Т.е. можно было бы сделать так:
Код: Выделить всё
std::count << boost::numeric_cast<unsigned int>(oneByte);
или даже
Код: Выделить всё
std::count << boost::numeric_cast<unsigned int>("789")
-
sim1
- Сообщения: 155
- ОС: GNU,BSD
Сообщение
sim1 »
по аналогии с бустом можно так
Код: Выделить всё
#ifndef __Utils_Convert_h
#define __Utils_Convert_h
template < typename T,typename V >
T cast(V & val)
{
return static_cast<T>( V );
}
#endif
тогда
Код: Выделить всё
char oneByte = 0x31;
std::count << cast<unsigned int>(oneByte) << std::endl;
-
Dem0n3D
- Сообщения: 23
- ОС: Ubuntu 10.10 32bit
Сообщение
Dem0n3D »
И вы утверждаете, что удобнее использовать
Код: Выделить всё
std::count << boost::numeric_cast<unsigned int>(oneByte);
чем
Код: Выделить всё
std::cout << static_cast< unsigned int >( oneByte ) << std::endl;
?! Не пойму: чем же этот бустовский вариант лучше встроенного?
-
Zeus
- Сообщения: 694
Сообщение
Zeus »
Наверное ничем.
И boost нужно иметь.