C++. Выход за пределы массива char при вводе строки большего размера. Как исправить?

Выдаёт ошибку когда пишу больше 9 символов. Run-Time Check Failure #2 - Stack around the variable 'c' was corrupted.

Как сделать, чтобы учитывались только первые 9 символов? String использовать нельзя.

#include <iostream>

using namespace std;

int main()
{
char c[10];
cin >> c;
cout << c;
return 0;
}

Не надо перечислять все элементы "cout<<c[0]<<c[1]<<c[2]<<...", а то придётся обязательно заполнять все элементы.


Ответы (1 шт):

Автор решения: KEEN

Можно использовать функцию cin.getline с ограничением на количество символов:

#include <iostream>

using namespace std;

int main()
{
    char c[10];
    cin.getline(c, 10);  // Считываем до 9 символов + нулевой символ
    cout << c;
    return 0;
}
→ Ссылка