Hello, here are the full code demonstrations below:
1. For <iostream> demonstration 1
/*-------------------------------------------------*/
#include <cstdint>
#include <iostream>
int main()
{
std::int8_t myInt{65};
std::cout << "Takes ASCII char " << myInt << '\n';
std::cout << "(static_cast): " << static_cast<int>(myInt) << '\n';
std::cout << "(int): " << (int)myInt << '\n';
return 0;
}
// First prints the ASCII character for 65, which is "A"
// (int) and static_cast print 65 correctly.
// The programmer learns to use (int) to print out int8_t
/*-------------------------------------------------*/
2. <iostream> demonstration 2
/*-------------------------------------------------*/
#include <cstdint>
#include <iostream>
int main()
{
std::cout << "Enter a number between 0 and 127: ";
std::int8_t myInt{};
std::cin >> myInt;
std::cout << "You entered (no cast): " << myInt << '\n';
std::cout << "You entered (static_cast): " << static_cast<int>(myInt) << '\n';
std::cout << "You entered ( (int) ): " << (int)myInt << '\n';
return 0;
}
// *User input:* 35
// You entered: 3 // this is the first char given onlly. The second one is ignored.
// You entered (static_cast): 51 // this is when the programmer assumes (int) or static_cast<int> should be used
// You entered ( (int )): 51 // 51 is the ASCII number for '3' .
/*-------------------------------------------------*/
3. <cstdio> demonstration 3
/*-------------------------------------------------*/
#include <iostream>
#include <cstdint>
#include <cstdio>
int main()
{
std::int8_t num{};
std::scanf("%hhd", &num); // Read the number and store it in num
std::printf("%d this for cstdio.h\n", num); // Print the value of num
std::cout << sizeof(num) * 8;
return 0;
}
//*User input*: 100
// prints correctly 100
// size is still int8_t.