Это связано с тем, что html
не является строкой с нулевым символом в конце и std::cout
сохраняет печатный символ до тех пор, пока не найдет \0
, иначе может произойти сбой вашей программы
Сделайте это:
html = new char [length +1 ];
is.read(html, length);
html[length] = '\0'; // put null at the end
is.close();
cout << html;
Или вы можете сделать это:
cout.write(html, length);
cout.write
прекратит печать ровно после length
числа символов.