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

C语言如何正确实现txt文件中多个浮点数值的导入与导出?

C语言txt文件浮点数值读写异常问题解决方案

问题根因

读取异常是写入阶段的逻辑错误导致的:

  1. 写入浮点数时没有添加任何分隔符,所有浮点数字符串连续拼接在一起。例如5.000000和6.000000会被拼接为5.0000006.000000,fscanf读取%f格式时会将连续的数字串识别为单个浮点数,因此仅能读到第一个拼接出来的数值,后续读取全部失败。
  2. 写入代码存在冗余错误行fprintf(f,"%f",f);,这行将FILE类型的指针变量强制作为浮点数输出,会向文件末尾写入无意义的垃圾值。

修复方案

第一步:修改写入代码

给每个写入的浮点数后增加空格/换行作为分隔符,同时删除冗余的错误写入行:

#include"stdio.h"
#include"stdlib.h"

int main(){
    FILE *f;
    f = fopen("abcde","w");
    if(f==NULL){
        printf("Error");
        exit(0);
    }
    float a,b,c,d,e;
    a=5;
    b=6;
    c=7;
    d=8;
    e=9;
    // 每个%f后加空格作为分隔符
    fprintf(f,"%f ",a);
    fprintf(f,"%f ",b);
    fprintf(f,"%f ",c);
    fprintf(f,"%f ",d);
    fprintf(f,"%f ",e);
    // 删除原代码中错误写入FILE指针的行
    fclose(f);
}

第二步:读取代码无需修改即可正常运行

fscanf读取%f时会自动跳过空格、换行等空白分隔符,原有的读取逻辑已经可以正确识别分隔后的5个浮点数值,运行后即可正常输出所有变量。

内容的提问来源于stack exchange,提问作者Ngoc Anh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:06:06