Это работает на другом языке, но не работает в C ++ для некоторых
причина.
Некоторые вещи меняются от языка к языку. В частности, в этом случае вы столкнулись с тем, что в C ++ указатели и массивы почти не отличаются. Этот массив передается оператору >> как указатель на символ, который интерпретируется как указатель на строку, поэтому он делает то же, что и буфер буфера (читается до ограничения ширины или конца строки, в зависимости от того, что наступит раньше). Ваша программа должна аварийно завершить работу, когда это произойдет, поскольку вы переполняете буфер.