繁体   English   中英

如何将浮点数组写入 C 中的文件?

[英]How to write a floating point array to a file in C?

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

0, 45.6
1, 67.9

等等。 我已经尝试过如下所示的 function,结果是我的 output 文件中有奇数字符。 谢谢,我是 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);
}

我得到一个 output 文件,如下所示:

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

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

fwrite() function 写入二进制数据。 您要编写的是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);

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM