我正在尝试将字符转换为无符号短字符,但我在m_cmdCode中获得的值始终为0.某些输入将非常有用。
int main()
{
char *temp = new char[3];
memset(temp,1,3);
unsigned short m_cmdCode = (unsigned short) atoi(temp);
printf("%d",m_cmdCode);
}
//我希望m_cmdCode等于111,是否可以这样做?
答案 0 :(得分:7)
您将temp
的元素设置为整数值1
。您想要字符值'1'
:
memset(temp, '1', 3);
请注意,您还需要NUL终止temp
atoi
才能可靠地工作。
答案 1 :(得分:0)
它来自你的memset,你把3个字节值1,它与写作不一样
strcpy(temp, "111")
也许我颠倒了src和dest