在做串口通信和網絡通信時,難免會遇到把接受的字符串數據轉化爲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));
}
}