小编par*_*c65的帖子

将整数转换为位

我有字节到二进制字符串函数,

std::string byte_to_binary(unsigned char byte)
{
    int x = 128;
    std::ostringstream oss;
    oss << ((byte & 255) != 0);

    for (int i = 0; i < 7; i++, x/=2)
       oss << ((byte & x) != 0);

    return oss.str();
}
Run Code Online (Sandbox Code Playgroud)

如何以相同的方式将int写入位?我不想在二进制字符串的开头加上额外的0,这就是为什么我无法弄清楚每次如何创建一个可变长度.另外,我没有使用std :: bitset.

c++ bits bitwise-operators

6
推荐指数
3
解决办法
3万
查看次数

从stringstream读取输入

我正在读取大小为5的字符数组的输入,

stringstream ss;

char a[5];

if (!ss.read(a, 5))
{
    // throw exception
}

if (!ss.get(a, 5))
{
   // throw exception
}
Run Code Online (Sandbox Code Playgroud)

这两个功能似乎都有效,有什么区别吗?

c++ stringstream

3
推荐指数
1
解决办法
4674
查看次数

cin stream错误

int main()
{
    int i;

    if (cin >> i)
    {
        //ok
    }
    else
    {
        //error
        cin.setstate(std::ios_base::goodbit);
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么我goodbit不能通过setstate()来清除failbit而不是cin.clear()?

c++

2
推荐指数
1
解决办法
360
查看次数

标签 统计

c++ ×3

bits ×1

bitwise-operators ×1

stringstream ×1