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;
}