【问题标题】:How to write a floating point array to a file in C?如何将浮点数组写入C中的文件?
【发布时间】:2020-05-19 22:32:44
【问题描述】:

我有一个 floag 数组,它有 189 个元素(从索引 0 运行到索引 188)。我无法将此数组写入文件。假设第一个元素是 45.6,第二个元素是 67.9,我希望我的输出文件如下所示:

0, 45.6
1, 67.9

等等。我试过下面显示的函数,结果是我的输出文件中有奇数字符。谢谢,我是C的新手

void writeCorrelationToFile(float slidingCorrelator[])
{  
    FILE *fp;
    fp=fopen("CorrelationResult.txt","w");
    printf("inside writeCorrelationToFile, writing out array using fwrite  \n");
    fwrite(slidingCorrelator,4,sizeof(slidingCorrelator),fp);
    fclose(fp);
}

我得到一个这样的输出文件:

�'���۽l^��(���!>

我也尝试将 sizeof(slidingCorrelator) 设置为 189,但这也没有帮助。

【问题讨论】:

    标签: c arrays writing


    【解决方案1】:

    fwrite() 函数写入二进制数据。您要编写的是 float 值的人类可读(即文本)表示,而不是二进制表示。

    您可以使用fprintf()

    float slidingCorrelator[N];
    FILE *fp;
    
    // ... fill the array somehow ...
    
    fp = fopen("CorrelationResult.txt", "w");
    // check for error here
    
    for (unsigned i = 0; i < N; i++) {
        fprintf(fp, "%d, %f\n", i, slidingCorrelator[i]);
        // check for error here too
    }
    
    fclose(fp);
    

    不要忘记检查这些函数的返回值以检测错误。有关详细信息,请参阅:

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-22
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    • 2021-12-22
    相关资源
    最近更新 更多