Мой код выглядит так:
using namespace std;
string pth("./xxx.pb");
ifstream fin(pth, ios::in | ios::binary | ios::ate);
int len = fin.tellg();
fin.seekg(0);
cout << "compare:\n";
string s1(len, 0);
fin.read(&s1[0], len);
for (auto &el : s1)
cout << (int)el << ", ";
cout << endl;
fin.clear();
fin.seekg(0);
stringstream ss;
fin >> ss.rdbuf();
for (auto &el : ss.str())
cout << (int)el << ", ";
cout << endl;
Вывод выглядит так:
compare:
10, 5, 104, 101, 108, 108, 111, 18, 2, 4, 6, 26, 7, 102, 108, 111, 97, 116, 51, 50, 32, 3,
5, 104, 101, 108, 108, 111, 18, 2, 4, 6, 26, 7, 102, 108, 111, 97, 116, 51, 50, 32, 3,
Кажется, что поток строк пропустил первый байт при чтении из файла. Откуда моя проблема?