Моля, помогни ми. Не мога да чета двоичен файл. Дължината на файла е 198944, но моят код чете 374. Опитах се да използвам fread, ifstream, WinAPI ReadFile. Това е функцията, която чете файла:
std::string ReadThisFile(std::string aPath) {
FILE *inputstream = fopen(aPath.c_str(),"rb");
long size;
size_t result;
fseek(inputstream,0,SEEK_END);
size = ftell(inputstream);
rewind(inputstream);
char *buff = new char [size];
result = fread (buff,1,size,inputstream);
std::string ret=buff;
fclose(inputstream);
delete[]buff;
return ret;
}
Необходима е всякаква помощ, благодаря!
strlen
, за да получите крайния размер? Не можете да съхранявате двоично съдържание в низ. - person Mahmoud Al-Qudsi   schedule 15.02.2013std::string
? Ако не, използвайте друг контейнер. (катоstd::vector<unsigned char>
или нещо подобно). - person WhozCraig   schedule 15.02.2013fseek(binary_stream, offset, SEEK_END)
не е гарантирано да работи (според C стандарта от 1999 г.). - person Alexey Frunze   schedule 15.02.2013