无法完全找到如何在 C/C++ 中执行以下操作的方法。
输入:十六进制值,例如:ffffffffff...
为了读取输入,我尝试了以下代码:
uint16_t twoBytes;
scanf("%x",&twoBytes);
这一切都很好,但是我如何将 2bytes 拆分为 1bytesuint8_t
值(或者甚至可能只读取第一个字节)。想从输入中读取第一个字节,并将其存储在字节矩阵中的选择位置。
uint8_t matrix[50][50]
由于我在格式化/读取 C/C++ 中的输入方面不是很熟练(并且到目前为止只使用了 scanf),因此非常感谢任何其他关于如何轻松(如果可以的话,速度很快)的想法。
编辑:通过使用 fread 函数找到了一种更好的方法,因为它可以指定应该从流中读取多少字节(在这种情况下为标准输入)并保存到变量/数组中。
size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );
参数
ptr - 指向最小大小为 (size*count) 字节的内存块的指针。
size - 要读取的每个元素的大小(以字节为单位)。
count - 元素的数量,每个元素的大小为 size 字节。
stream - 指向指定输入流的 FILE 对象的指针。