我正在尝试从文件中读取数据,并使用vector<unsigned char>
方法将其放入file.read()
中,但是出了点问题。
typedef unsigned char BYTE;
#include <fstream>
#include <string.h>
#include <vector>
#include <iostream>
#include <iterator>
class ROM{
private:
std::vector<BYTE> RomName;
public:
ROM (const char* t_RomFileName){
std::ifstream ROMFile(t_RomFileName, std::ifstream::ate | std::ifstream::binary);
RomName.reserve(16);
if (ROMFile.is_open()){
size = ROMFile.tellg();
ROMFile.seekg (80, ROMFile.beg);
ROMFile.read((char*)RomName.data(), 16);
for(std::vector<BYTE>::iterator it = RomName.begin(); it != RomName.end(); ++it ){
std::cout << *it;
}
...
}
};
屏幕上不打印任何内容,RomName.size()
返回0
。此外,文件指针移动了16个字节。我尝试使用char* test = new char[16]
并阅读了所有内容。我在哪里错了?