在做串口通信和网络通信时,难免会遇到把接受的字符串数据转化为float类型。我做雷达时数据文件都是float,每个float数据用换行分开'\n'。在读文件时直接用fread(buffer, 1, 1024, fp).char buffer[1024],第一个1代表每次读一个字节,1024代表一共读取多少次,fp时文件指针。例如数据文件时.dat类型,其中数据如下:
10982.234567
6081.000098
等等:那么buffer存的数据是“10982.234567\n6081.000098”,每个字符都是暂用一个字节。
那么把buffer的数据转化成float程序如下:记得加#include <stdlib.h>
for (int i = 0; i < 1024; i ++)
{
if ( '\n' == buffer[i] )
{
printf("%f", atof(buffer + i));
}
}