使用ifstream
進行二進制文件的讀寫,你需要注意以下幾點:
std::ios::binary
標志打開文件,以確保以二進制模式讀取或寫入文件。>>
和<<
運算符進行讀寫操作,它們會自動處理字節順序(大端或小端)。下面是一個簡單的示例,展示了如何使用ifstream
進行二進制文件的讀寫:
讀取二進制文件
#include <iostream>
#include <fstream>
#include <vector>
int main() {
std::ifstream input_file("input.bin", std::ios::binary);
if (!input_file) {
std::cerr << "無法打開輸入文件" << std::endl;
return 1;
}
// 假設文件中的數據是整數
int data;
while (input_file.read(reinterpret_cast<char*>(&data), sizeof(int))) {
std::cout << data << std::endl;
}
input_file.close();
return 0;
}
寫入二進制文件
#include <iostream>
#include <fstream>
#include <vector>
int main() {
std::ofstream output_file("output.bin", std::ios::binary);
if (!output_file) {
std::cerr << "無法打開輸出文件" << std::endl;
return 1;
}
// 假設我們要寫入的數據是整數
std::vector<int> data = {1, 2, 3, 4, 5};
for (const auto& value : data) {
output_file.write(reinterpret_cast<const char*>(&value), sizeof(int));
}
output_file.close();
return 0;
}
注意:在這些示例中,我們假設文件中的數據是以int
類型存儲的。如果你要處理其他類型的數據,只需將相應的類型替換為int
即可。同時,確保在打開文件時正確處理錯誤情況,并在完成操作后關閉文件。