Значение переменной Char не отображается

Извините за смутное название (я не знал, как решить проблему). В любом случае, в моем коде я явно объявил несколько переменных, две из которых подписаны / не подписаны ИНТ переменные, а остальные подписываются / не подписываются голец Переменные типа.

Мой код:

#include <iostream>

int main(void)
{
unsigned int number = UINT_MAX;
signed int number2 = INT_MAX;
unsigned char U = UCHAR_MAX;
signed char S = CHAR_MAX;

std::cout << number << std::endl;
std::cout << "The size in bytes of this variable is: " << sizeof(number) <<       std::endl << std::endl;

std::cout << number2 << std::endl;
std::cout << "The size in bytes of this variable is: " <<sizeof(number2) << std::endl << std::endl;

std::cout << U << std::endl;
std::cout << "The size in bytes of this variable is: " << sizeof(U) << std::endl
<< std::endl;

std::cout << S << std::endl;
std::cout << "The size in bytes of this variable is: " <<sizeof(S) << std::endl << std::endl;

std::cin.get();
std::cin.get();

return 0;
}

Извините, код закодирован из-за чрезмерной длины, но моя проблема в том, что мой голец переменные не «печатают» к моему выводу. Он выводит их размер в байтах, но независимо от того, что я делаю, я не могу заставить его работать. Также Второй голец переменная (подпись (S)) печатает то, что выглядит как треугольник, но ничего больше.

3

Решение

Попробуй это:

std::cout << (int)U << std::endl;
std::cout << "The size in bytes of this variable is: " << sizeof(U) << std::endl
<< std::endl;

std::cout << (int)S << std::endl;
std::cout << "The size in bytes of this variable is: " <<sizeof(S) << std::endl << std::endl;

Объяснение так просто: когда тип char, cout пытается произвести символический вывод, который whitespace для 255 или симпатичный треугольник для 127. Когда тип int, cout просто печатает значение переменной. Например, в C:

printf("%d", 127) // prints 127
printf("%c", 127) // prints triangle, because %c formatter means symbolic output
6

Другие решения

Они напечатаны, но вы не можете видеть это.
Вы можете открыть файл «limit.h»:

#define CHAR_BIT      8         /* number of bits in a char */
#define SCHAR_MIN   (-128)      /* minimum signed char value */
#define SCHAR_MAX     127       /* maximum signed char value */
#define UCHAR_MAX     0xff      /* maximum unsigned char value */

затем вы ищите UCHAR_MAX и CHAR_MAX в таблице ASCII,

0

По вопросам рекламы [email protected]