Адаптирования части коды я видел в SO, я вышел со следующим раствором:Противоречивый выход при чтении двоичного файла
fstream file("sample.bin", ios::binary | ios::in | ios::ate);
unsigned char charsRead[(int)file.tellg()];
file.read((char *) &charsRead, sizeof(char*));
for(int i=0; i<sizeof(charsRead); i++)
cout << (int) charsRead[i] << endl;
file.close();
Это компилировать, но каждый раз, когда выполняются, она возвращает другой вывод , Кто-нибудь знает, почему это происходит?
Вы уверены, что 'sizeof (char *)' делает то, что вы думаете? –
'unsigned char charsRead [(int) file.tellg()];' является нестандартным VLA. Если вам нужно прочитать в буфере 'char', рассмотрите' std :: vector '. –
NathanOliver
Mmmm не очень. Но даже когда это число является константой, оно все равно возвращает разные выходы при выполнении разных времен, поэтому это не объясняет изменения. –