我在buff中有这样的字符串:
$GPGGA,031956,2218.2035,N,11410.7595,E,1,04,3,9,005.9,M,-001.3,M,,*51
我在做什么是读取逗号到数组之间的一些值:
char ts[16];
char lat[16];
char latd[16];
char lon[16];
char lond[16];
char sats[16];
sscanf(
buff,
"%*[^,],%[^,]s,%[^,]s,%[^,]s,%[^,]s,%[^,]s,%*[^,],%[^,]s",
ts,lat,latd,lon,lond,sats
);
sscanf读得很好(031956)。但是,lat,latd等没有任何值。
为什么会这样?
答案 0 :(得分:4)
您的格式字符串中有一些错误的s
个字符。
您当前的正则表达式与%*[^,],%[^,]
匹配,但随后与后面的s
字符不匹配,因此字符串的其余部分不匹配。如果删除这些s
字符,则格式应与您提供的字符串中的值031956,2218.2035,N,11410.7595,E,04相匹配。