在缓冲区中以十六进制格式插入一个值
Insert a value in buffer in hex format
我有一个二进制文件,里面有十六进制值。例如1d 31 30 2e 30 30 2e 38 33 5f 75 66 6c 78 3b 30
我有一个 c++ 项目,我在其中读取数据并使用 ifstream
处理信息。
现在我想修改缓冲区中的一个值。例如。 1d
应更改为 0a
。
以下是我的代码。这里的问题是我得到的值是a
而不是0a
.如何将完美的十六进制数字插入缓冲区。
void TestMethod()
{
std::ifstream m_inputFile;
m_inputFile.open("c:\temp.bin", std::ofstream::in | std::ofstream::binary);
char* buff = new char[300];
m_inputFile.read(buff, 300);
UpdateData(buff, 10);
}
void UpdateData(char* buffer, int val)
{
int POSITION = 32;
char capID[2];
itoa(val, capID, 16);
std::memcpy(&buffer[POSITION], &capID, sizeof(buffer[POSITION]));
}
建议请。谢谢。
void UpdateData(char* buffer, int val)
{
int POSITION = 32;
char capID[3]; // 1 extra for terminating zero!!!!
// use good old sprintf
sprintf(capID, "%02x", (val & 0xFF));
std::memcpy(&buffer[POSITION], &capID, sizeof(buffer[POSITION]));
}
相关文章:
- 预处理器:插入结构名称中的前一个行号
- 将一个向量插入另一个向量的某个位置
- 在一个类中插入另一个类的多重集
- 在C++的链表末尾插入一个节点
- 插入一个基本的单向链表节点似乎破坏了我的 c++ 代码?
- 如何在另一个字符串的x位置插入一个字符串?
- 如何仅使用其中一个维度在 2D 矢量中插入值?
- 如何从一个容器中获取某些元素并将其转换插入到另一个容器中?
- 如果我们不创建一个新节点并使用指针插入数据并建立链接(在链表中)怎么办?
- 在另一个字符串中插入文件扩展名之前的字符串
- 如何组合一个宽字符字符串,中间插入一些空字符
- win32 c++ 我想在静态标签的文本之后直接插入一个 EDIT 控件
- 创建一个函数以在给定位置将元素插入到列表中
- C++ 如何在 std::vector 中插入一个连续的间隔范围?
- C++将 X 向量数据插入到另一个向量
- 插入指针数组会删除上一个结果
- 将向量{x,y,z}插入另一个向量
- 将多个偏移量的多个元素插入到一个矢量中
- 多次生成一个插入的对象
- 用一个插入线程和一个读线程映射并发性