Извините за смутное название (я не знал, как решить проблему). В любом случае, в моем коде я явно объявил несколько переменных, две из которых подписаны / не подписаны ИНТ переменные, а остальные подписываются / не подписываются голец Переменные типа.
Мой код:
#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)) печатает то, что выглядит как треугольник, но ничего больше.
Попробуй это:
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
Они напечатаны, но вы не можете видеть это.
Вы можете открыть файл «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,