google на тему "cin и переполнение буфера".
Начну с того, что я не ищу в Гугле те вопросы, на которые я точно знаю ответы....
Второе...
Я никогда не делаю возможности переполнения буфера и этот код - не исключение......
Еще раз скажу... Этот код не исключение....
Третье...
Вы совершенно не компетенты в вопросе "переполнения буфера" (ваше предыдущее сообщение, совершенно не соответсвует сообщению последнему).... В том месле вы говорили про одно
переполнение буфера в этом месте вы говорите о совсем другом "переполнении буфера" (кавычки - не случайны)....
Максимум что тут может переполниться это поток ввода (но это долеко не переполнение буфера же, вы же понимаете)
Вот о чем вы говорите, это даже рядом не стоит с переполнением буфера, это только те символы (которые непрочитаны и оставлены в потоке)...
Переполнение же - это изменение локальной памяти (значения переменных программы) путем не соответсвия передаваемой информации (которая считается с памяти), в область выделенной памяти для этих данных (переменную)....(с) Сказанно своими словами... Могу конечно разница с оригинальным определением... Критическая ошибка, полное нажушение алгоритма программы....
Поверьте, я последние 5 лет, зарабатываю на хлеб, тем что пишу драйвера для торгового оборудования и в переполнении поверьте разбираюсь....
А то что вы пытаетесь, сейчас предьявить - это простите за прямоту - бред, как бы вам точнее сказать (удобство интерфеса ввода), но никак не переполнение, синхронизация потоков - это совершенно не то, просто для таких программ лишнее раздувание кода всякими там
if (istream::fail());istream::sync(); или istream::ignore() - излишнее и крайне затрудняет понимае... Еще раз скажу, если вы так и не поняли, клас STL std::string не застрахован от переполнения потокового ввода.. Совсем не застрахован...
И ваша фраза о :
Вы же мне говорите, про обычное
А std::string автоматически растягивается под текущие нужды
Верна, но говорит она совсем о другом, а не о том что вы имеете ввиду...