簡體   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