read()
函数是 C++ 中用于从文件或其他输入流(如标准输入)读取数据的函数
read()
函数之前,确保为目标缓冲区分配足够的内存空间。这可以通过使用 new
运算符(对于动态内存分配)或在栈上声明一个足够大的数组来实现。const size_t bufferSize = 1024;
char* buffer = new char[bufferSize];
std::unique_ptr
或 std::shared_ptr
)来管理动态分配的内存。#include<memory>
const size_t bufferSize = 1024;
std::unique_ptr<char[]> buffer(new char[bufferSize]);
read()
函数返回时,它会告诉你实际读取的字节数。确保只处理实际读取的数据,而不是整个缓冲区。#include<iostream>
#include <fstream>
int main() {
std::ifstream file("example.txt", std::ios::binary);
const size_t bufferSize = 1024;
std::unique_ptr<char[]> buffer(new char[bufferSize]);
while (file) {
file.read(buffer.get(), bufferSize);
size_t bytesRead = file.gcount();
// 处理读取到的数据
for (size_t i = 0; i< bytesRead; ++i) {
std::cout<< buffer[i];
}
}
return 0;
}
delete[]
运算符。// 对于智能指针,无需手动释放内存
buffer.reset();
// 对于动态分配的内存,使用 delete[] 释放内存
delete[] buffer;
遵循这些内存管理技巧,可以确保在使用 read()
函数时正确地分配和释放内存,从而避免内存泄漏和其他问题。