所以我试图编写一个将整个文件读取到内存(二进制)的 C++ 程序。内存块显然是一个字符数组。文件读取成功,但是当我遍历这些值时,其中一些不是字节,例如 4294967295。
我真的搜索并尝试了一切,但没有任何效果。值得一提的是,我在读取文件(即文本)时没有这个问题。
这是代码:
char* XFile;
ifstream::pos_type Size;
bool LoadFile(string FileName)
{
cout << "Opening File: " << FileName << endl;
ifstream FS(FileName.c_str(),ios::in | ios::binary | ios::ate);
if (!FS.is_open())
return false;
Size = FS.tellg();
cout << "File Size: " << Size << " bytes" << endl;
XFile = new char[Size];
FS.seekg(0, ios::beg);
FS.read(XFile,Size);
for (int i = 0; i < 100; i++) // This loop is to test the read bytes (for example purposes)
cout << static_cast<unsigned>(XFile[i]) << "\n";
FS.close();
return true;
}