簡體   English   中英

如何在C ++中將long寫入二進制文件?

[英]How can I write longs to a binary file in C++?

我有一個long數組,我想將每個元素寫入二進制文件。 我知道您使用write()來寫入二進制文件,但是write()接受兩個參數:一個指向char數組(緩沖區)的指針和一個數字。 由於我有一個long數組,所以我無法使用write()進行write() 我什至嘗試將指向long int數組的指針直接傳遞給第一個參數,但它產生了編譯器錯誤。

這是我要執行的操作的一個示例:

long* arr = new long [999999];

// imaginary code that fills arr with data

file.write(arr,1000000);

如何將我的long數組寫入二進制文件? 我已經考慮過以某種方式將long轉換為char,但是我懷疑這樣做是否可行,並且在數據類型之間進行轉換時精度可能會有所損失。 另外,當我編譯代碼時,編譯器錯誤還留下了以下注釋:“ no known conversion for argument 1 from 'long int*' to 'const char*' ”。

感謝您的幫助。

不,那正是您應該做的:

const size_t N = 999999;
long* arr = new long[N];
file.write((const char*)arr, sizeof(long)*N);

這會將long 數組重新解釋為簡單的字節序列(即char ),並將該序列寫入文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM