01/10/2018, 11:57

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 ạ

HK boy viết 14:14 ngày 01/10/2018

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

Ideone.com

Ideone.com

Ideone is something more than a pastebin; it's an online compiler and debugging tool which allows to compile and run code online in more than 40 programming languages.

viết 14:13 ngày 01/10/2018

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";
}
Bài liên quan
0