You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将CSV文件中的十进制数转换为C语言float类型变量

将CSV文件中的十进制数转换为C语言float变量的实现

下面是直接可用的C语言代码,能读取指定的data.csv文件,将其中的十进制数转换为float类型数组,并按照你要求的格式输出结果:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_ROWS 100    // 最大行数,可根据需求调整
#define MAX_COLS 10     // 最大列数,可根据需求调整
#define BUFFER_SIZE 256 // 每行的最大缓冲区大小

int main() {
    FILE *fp;
    char buffer[BUFFER_SIZE];
    float data[MAX_ROWS][MAX_COLS];
    int row = 0, col;
    long filesize;

    // 打开CSV文件
    fp = fopen("data.csv", "r");
    if (fp == NULL) {
        perror("无法打开文件");
        return 1;
    }

    // 获取文件大小
    fseek(fp, 0, SEEK_END);
    filesize = ftell(fp);
    fseek(fp, 0, SEEK_SET);

    // 读取并解析每一行
    while (fgets(buffer, BUFFER_SIZE, fp) != NULL && row < MAX_ROWS) {
        col = 0;
        // 用逗号分割字符串
        char *token = strtok(buffer, ",\n");
        while (token != NULL && col < MAX_COLS) {
            // 将字符串转换为float
            data[row][col] = atof(token);
            col++;
            token = strtok(NULL, ",\n");
        }
        row++;
    }

    // 关闭文件
    fclose(fp);

    // 按照指定格式输出结果
    printf("------------START OF PROGRAM------------\n");
    printf("Filesize: %ld Bytes\n\n", filesize);
    printf("CSV_content =\n");
    for (int i = 0; i < row; i++) {
        printf("[ ");
        for (int j = 0; j < MAX_COLS; j++) {
            // 跳过未赋值的列(如果实际列数小于MAX_COLS)
            if (j >= col && data[i][j] == 0.0) break;
            printf("%.6f ", data[i][j]);
        }
        printf("]\n");
    }
    printf("\n------------END OF PROGRAM------------\n");

    return 0;
}

关键代码说明:

  • 文件操作:用fopen打开文件,通过fseek和ftell获取文件大小,完成读取后用fclose释放资源,对应输出中的文件大小信息。
  • CSV解析:fgets逐行读取内容到缓冲区,strtok以逗号、换行符为分隔拆分每行字符串,再用atof将拆分后的十进制数字符串转为float类型,存入二维数组。
  • 格式输出:用printf的%.6f控制符让float值保留6位小数,循环遍历数组按[ xxxxxxx xxxxxxx ... ]的格式逐行输出。

使用注意事项:

  • 如果CSV的行数或列数更多,直接调整MAX_ROWS和MAX_COLS的定义值即可。
  • 当前代码适配你提供的简单CSV格式,若需要处理带引号、空字段等复杂CSV场景,可考虑使用专门的CSV解析库。

内容的提问来源于stack exchange,提问作者Self learning student

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 12:56:24