C 打开一个二进制文件
C++ Opening a binary file
我想在C 中打开一个二进制文件。但是我在C中具有此功能:
uint openPacket(const char* filename, unsigned char** buffer) {
FILE* fp = fopen(filename, "rb");
if (fp) {
size_t result;
fseek(fp, 0, SEEK_END);
long fsize = ftell(fp);
rewind(fp);
*buffer = new unsigned char[fsize];
result = fread(*buffer, 1, fsize, fp);
if (result != fsize) {
printf("Reading error in %s, unable to send packet!n", filename);
delete[] * buffer;
fsize = 0;
}
fclose(fp);
return fsize;
} else {
printf("Couldn't open %s for packet reading, unable to send packet!n", filename);
return 0;
}
}
我想制作类似:字符串openpacket(字符串文件名)之类的东西但是不要工作:(
可能是这是一个可能的包装函数:
std::string openPacket( const std::string& filename )
{
unsigned char* buff;
uint size = openPacket( filename.c_str(), &buff );
if( size )
{
std::string s( reinterpret_cast<const char*>(buff), size );
delete [] buff;
return s;
}
return std::string();
}
我认为您需要这个:
uint openPacket(const char* filename, unsigned char** buffer) {
ifstream file (filename, ios::in|ios::binary|ios::ate);
streampos size;
if (file.is_open())
{
size = file.tellg();
*buffer = new char [size];
file.seekg (0, ios::beg);
file.read (memblock, size);
file.close();
cout << "the entire file content is in memory";
return size;
}
参考检查此
希望这对您有帮助。
相关文章:
- 如何将包含另一个对象向量的对象保存到文件中,并使用C++中的二进制文件从文件中读回?
- 如何在标准c ++中流式传输/读取二进制文件的中间部分并写入另一个文件?
- 将XSD文件嵌入一个(二进制文件)中
- 从一个二进制文件中读取信息,并写入另一个二进制文件
- 将 tesseract 编译/捆绑为一个二进制文件
- 如何将所有依赖项和共享库编译为一个二进制文件
- C 打开一个二进制文件
- 在 Google 的C++测试框架中为多个单元测试创建一个二进制文件
- c++将一个文件读入一个结构并写入一个二进制文件
- 将4位写入到一个二进制文件中,其中包含ofstream
- 创建一个二进制文件,向其中添加信息,并从中读取所有记录(电话簿)
- C++用另一个二进制文件编辑二进制文件
- 用c++中的映像创建一个二进制文件
- 协议缓冲区问题,多个序列化成一个二进制文件
- 同一类型的不同布局在一个二进制文件中
- 编写一个二进制文件到c#结构体
- 添加一个二进制文件供Xcode使用
- c++,如何一次将几个简单的矢量写入一个二进制文件
- unix多次并行运行一个C++二进制文件是否存在问题
- 我正在创建一个二进制文件,在其中插入一对int类型和一个结构,并看到下面给出的错误.请提出建议