C ++-使用file.read()使用vector <>。data()从文件读取到std向量

时间:2019-03-21 01:12:17

标签: c++ file stdvector

我正在尝试从文件中读取数据,并使用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]并阅读了所有内容。我在哪里错了?

0 个答案:

没有答案