分塊讀取文件

#include <iostream>
#include <fstream>
#include <cstdint>
#include <cmath>

int main() {
   std::ifstream file1("file1.bin", std::ios::binary);
   std::ifstream file2("file2.bin", std::ios::binary);

   if (!file1.is_open() || !file2.is_open()) {
       std::cerr << "Error opening file(s)" << std::endl;
       return 1;
   }

   const size_t bufferSize = 1024; // 你可以根據(jù)你的內(nèi)存情況調(diào)整這個(gè)值
   uint8_t buffer1[bufferSize];
   uint8_t buffer2[bufferSize];

   size_t totalBytes = 0;
   double totalError = 0.0;

   while (true) {
       file1.read(reinterpret_cast<char*>(buffer1), bufferSize);
       file2.read(reinterpret_cast<char*>(buffer2), bufferSize);

       size_t bytesRead = file1.gcount();
       if (bytesRead == 0) break;

       for (size_t i = 0; i < bytesRead; ++i) {
           totalError += std::abs(buffer1[i] - buffer2[i]);
       }

       totalBytes += bytesRead;
   }

   double mae = totalError / totalBytes;
   std::cout << "Mean Absolute Error: " << mae << std::endl;

   return 0;
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容