将整数表示为一个字节

时间:2009-11-08 10:00:49

标签: c++

目前我正在进行作业并首次使用C ++。 我试图将某些“消息类型”附加到字符串的开头,因此当发送到服务器/客户端时,它将根据消息类型处理字符串。我想知道我是否能够将任何两位数整数放入消息缓冲区的元素中....见下文。

我在下面留下了一段代码:

char messageBuffer[32];
messageBuffer[0] = '10';       << I get an overflow here

messageBuffer[1] = '0';             
for (int i = 2; i < (userName.size() + 2); i++)
{
    messageBuffer[i] = userName[(i - 2)];
}

谢谢=)

2 个答案:

答案 0 :(得分:1)

消息缓冲区是一个char数组。索引0包含一个char,因此您不能将2个字符放入一个char中。这违反了一位包含一个二进制数字的规则: - )

正确的解决方案是:

  

messageBuffer [0] = '0';

     

messageBuffer [1] = '1';

或:

  

messageBuffer [1] = '0';

     

messageBuffer [0] = '1';

  

messageBuffer [0] = 10;

答案 1 :(得分:1)

'10'不是有效值,因此溢出

在messageBuffer [0] = 10中写入10 - 如果10是你要放的值,或者像Lars写的那样写。