我正在尝试读,使用fread从C++中的外部文件读入值。这些值被存储为uint16,这在C++中似乎并不存在。我做了一些谷歌搜索,发现人们使用typedef制作自己的文件,但我也想知道是否可以只使用fread( ptr,uint8,2,uint16 )来读取两个要存储在ptr中的uint8。
有没有人知道最好的方法呢?
发布于 2011-06-17 02:36:55
您可能需要:
fread(ptr, sizeof(uint8), 2, file)在我看来还可以,fread(ptr, 1, 2, file)甚至更好。或者fread(ptr, sizeof(uint16_t), 1, file)。
我假设ptr是一个指向您想要存储数据的位置的指针,而不是变量本身(如果是这样的话-使用&ptr)。
不过,一次读取两个字节可能会成为性能问题,请考虑读取内存缓冲区,然后对其进行解析。
发布于 2011-06-17 02:38:37
像uint16_t这样的固定大小整数类型是在<stdint.h>头中定义的。包括这一点,你就可以做生意了。
发布于 2011-06-17 03:25:04
#include <stdint.h>应该会为你解决这个问题
https://stackoverflow.com/questions/6376840
复制相似问题