4

我正在尝试使用 fread 从 C++ 中的外部文件中读取值。这些值存储为 uint16,在 C++ 中似乎不存在。我做了一些谷歌搜索,发现人们使用 typedef 来制作他们自己的 uint16,但我也想知道我是否可以使用 fread(ptr, uint8, 2, file) 来读取两个要存储在 ptr 中的 uint8。

有没有人对解决这个问题的最佳方法有任何见解?

4

4 回答 4

4

固定大小的整数类型如uint16_t<stdint.h>标题中定义。包括它,你就会做生意。

于 2011-06-16T18:38:37.380 回答
3

你可能想要:

fread(ptr, sizeof(uint8), 2, file)

在我看来fread(ptr, 1, 2, file)还可以,甚至更好。或fread(ptr, sizeof(uint16_t), 1, file)

我假设这ptr是一个指向您要存储数据的位置的指针,而不是变量本身(如果是的话 - 使用&ptr)。

虽然一次读取两个字节可能会成为性能问题,但请考虑读入内存缓冲区,然后对其进行解析。

于 2011-06-16T18:36:55.260 回答
0
#include <stdint.h>

应该为你修好

于 2011-06-16T19:25:03.990 回答
-1

您可以使用一堆固定大小,uint16_t 和 __int16 是在这种情况下可以帮助您的两个。

于 2011-06-16T18:45:00.843 回答