Дана строка символов, состоящая из произвольного
текста, слова разделены пробелами. Вывести на экран порядковый номер слова максимальной длины и номер позиции в строке, с которой оно начинается.
Подскажите, пожалуйста...где в моем коде ошибка


#include
#include
int main()
{
std::string str; //С++ строка
size_t beg = 0, end, max_len = 0, max_pos = 0, max_num = 0, number = 1;
std::getline(std::cin, str); //считывание строки
do
{
end = str.find_first_of(' ', beg); //нахождение позиции следующего пробела
if (end == std::string::npos) end = str.size(); //если пробела не найдено = позиция конца строки
if (end - beg > max_len) //если разница между пробелами больше длины макс слова
{
max_len = end - beg; //обновить длину
max_pos = beg; //обновить его индекс
max_num = number; //обновить порядковый номер
}
beg = end + 1; //сдвигаем позицию поиска за последний пробел
++number; //счетчик слов
} while (end != str.size()); //цикл идет пока не достигли конца строки
std::cout