gpt4 book ai didi

c++ - 在 C++ 中打印十六进制代码,但只打印 "g"

转载 作者:行者123 更新时间:2023-11-27 23:06:56 27 4
gpt4 key购买 nike

我对以下代码有疑问。当我运行它时,它总是只打印“g”而不是十六进制代码。为什么?如何输出十六进制代码? fiddle :http://ideone.com/FjYr2M

#include <iostream>
using namespace std;

void prepareAndSend() {
char Command[50];
sprintf(Command,"%04XT1000A", "076");

unsigned char checksum = 0x02;

char* p = Command;
while(*p) {
checksum ^= *p++;
}
checksum ^= 0x03;

std::cout << std::hex << checksum << std::endl;
}

int main() {
prepareAndSend();
return 0;
}

最佳答案

sprintf(Command,"%04XT1000A", "076");

未定义的行为,打开你的编译器警告。

sprintf(Command,"%04XT1000A", 0x76);

你还需要投checksum避免使用 unsigned char operator<< 的版本

std::cout << std::hex << static_cast<int>(checksum) << std::endl;

关于c++ - 在 C++ 中打印十六进制代码,但只打印 "g",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22980852/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com