[英]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.