文件为txt格式,每一行存放一个浮点数,将所有数据存放在一个结构体中。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define LINE_MAX (256)
typedef struct test_float {
float data1;
float data2;
float data3;
float data4;
} test_float_t;
int main(int argc, char** argv)
{
FILE *fp;
int line_count = 0;
int i = 0;
float f;
char buffer[LINE_MAX];
test_float_t *test_float = (test_float_t *)malloc(sizeof(test_float_t));
fp = fopen("test_params.txt", "r");
if (fp == NULL) {
printf("Failed to open file\n");
return -1;
}
//计算txt文件行数
while (fgets(buffer,sizeof(buffer), fp) != NULL) {
line_count++;
}
//将数据按行存放在data数组中
fseek(fp, 0, SEEK_SET);//将文件流指针移动至文件开头
float *data = (float *)calloc(line_count, sizeof(float));
while(fscanf(fp, "%f", &f) == 1) {
data[i] = f;
i++;
}
//将数据copy至目标结构体
memcpy(test_float, data, sizeof(test_float_t ));
fclose(fp);
free(data);
free(test_float);
return 0;
}
因篇幅问题不能全部显示,请点此查看更多更全内容