前言
对数据的拆分使用合适的格式化输入函数是个不错的选择,
如scanf(), fscanf() …
但当变量是 uint8_t 类型时,占位符用%d会报错,
解决方法
格式化输入数据到 uint8_t 型变量,其他同理,
#include <stdio.h>
#include <inttypes.h> //需要包含这个头文件
int main()
{
FILE *fp;
uint8_t num = 0;
uint16_t year = 0;
fscanf(fp, "%hhu %hu", &num, &year);
}
而打开inttypes.h
文件,你会发现SCNu8
是%hhu
的宏定义,
因此直接写%hhu
效果一样,
同理,还有其他如 uint16_t, uint32_t 的宏定义,自行探索。