Cách nhập vào số nguyên không dấu 1byte trong C++

Như tiêu đề ạ. không biết nhập vào thế nào.Không lẻ dùng kiểu unsigned char như bình thường có đúng không ạ

Thế bạn muốn nhập theo cách không bình thường à :v

cin >> n thì n = ‘4’ chứ ko phải n = 4, nhập 45 thì n cũng = ‘4’.

cho m là int, nhập cin >> m bình thường, rồi kiểm tra m >= 0 và m <= 256 thì ép xuống 8 bit

#include <iostream>

bool readUint8(std::istream& in, unsigned char& n)
{
    int m;
    if (in >> m && m >= 0 && m <= 256)
    {
        n = static_cast<unsigned char>(m);
        return true;
    }
    return false;
}

int main()
{
    unsigned char n;
    if (readUint8(std::cin, n))
        std::cout << "n = " << static_cast<int>(n) << "\n";
    else
        std::cout << "Not an unsigned 8-bit integer\n";
}
2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?