Я объявил переменную uint8, и когда значение в ней напечатано, я получаю смайлики и белые пробелы. Не должно ли оно отображать целочисленные значения?uint8 отображает странные символы
ответ
Держу пари, uint8
является typedef
для unsigned char
в заголовках систем. Затем std::cout << u
будет печатать символы, а не целые значения, где u
имеет тип uint8
. Попробуйте
std::cout << static_cast<int>(u);
или
std::cout << +u;
иметь числовые значения, напечатанные.
, но не будет ли это использовать для int32? – aks
Да, это будет. Но в чем проблема? Это создает временную переменную int из переменной uint8 и передает ее в std :: cout для печати. – usta
@Rajesh. Если вы печатаете в десятичной форме, считаете ли вы, что имеет значение, если значение хранится в uint8 или uint32 непосредственно перед его печатью? –
Все зависит от того, как вы печатаете значение. Для cout попробуйте cout << (long unsigned int)var;
, а для printf
вы можете попробовать использовать спецификатор формата %lu
. Однако, как упоминалось выше, uint8
, вероятно, определен или typedef'd как что-то еще, поскольку это не тип ISO C++. Существует также вероятность того, что uint8
typedef'd до unsigned long int
(generic), или unsigned __int64
(специфичная для платформы MS), а компилятор MSVC++ просто выполняет неправильное неявное преобразование. Не зная, что такое uint8
, трудно сказать.
uint8 используется непосредственно ....> typedef uint8 _UINT1; В комментарии говорится: 1 байтовое целое число (как поставить серый блок вокруг кода?) – aks
Ну, тогда '_UIN1;' скорее всего также определяется как что-то еще. Вы должны были бы следовать за typedef, пока не нажмете базовый внутренний тип (хотя '_UINT1', кажется, подразумевает один символ без знака, а не 64-битное число). Кроме того, вы можете указать текст как код (т. Е. «Серый квадрат»), обернув его в символы обратной цитаты. – Javert93
typedef uint8 _UINT1; определяет _UINT1 как псевдоним uint8, а не наоборот. Поэтому вам придется искать typedef XXX uint8; чтобы узнать, что такое uint8. Или вы можете просто доверять мне, что это 8-разрядное целое без знака и является псевдонимом для unsigned char :). [u] Типы intN [_t] всегда означают N-разрядные целые числа, а не N-байтовые целые числа. – usta
- 1. Программа отображает странные символы на экране
- 2. Странные символы на mac
- 3. Странные символы на странице
- 4. Почему Safari отображает странные символы вместо содержимого HTML?
- 5. UTF-8 html без спецификации отображает странные символы
- 6. Zend Form Отображает странные символы на неанглийских символах
- 7. Facebook Доля показывая странные символы
- 8. Странные символы от NSXMLParser
- 9. WebClient показывает странные символы
- 10. FileOutputStream писать странные символы
- 11. Странные символы вместо изображения
- 12. Странные символы JQuery Mobile
- 13. Странные символы визуализации
- 14. InputStream дает странные символы
- 15. Странные символы в Python
- 16. Странные символы в PHP
- 17. API дает странные символы
- 18. Странные символы в массиве
- 19. strcat_s добавляет странные символы
- 20. Странные символы на терминале
- 21. Странные символы в printf
- 22. Странные символы в перфомансе ...
- 23. Странные символы, отображающие содержимое
- 24. Laravel echo странные символы
- 25. Varnish ESI: странные символы
- 26. Векторный символ странные символы
- 27. CSS делает странные символы
- 28. Экспорт файлов - Странные символы
- 29. CK Editor странные символы
- 30. Появляются странные символы
напишите свой код. – tenfour
Я использую библиотеку от поставщика .. он возвращает тип uint8 – aks
Вы пытаетесь напечатать его как строку, используя спецификатор формата '% s'? Попробуйте распечатать отдельные символы. – dirkgently