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