Проблемы с циклом

Visual C ++ продолжает прерывать мой цикл. Строка l1 имеет длину 80 символов. По какой-то причине код проходит через одну итерацию основного цикла, а затем появляется окно с сообщением «Ошибка отладки … R6010 -abort () был вызван», что завершает программу.

for(int i=1;i<80;i++)
{
SetConsoleTextAttribute(hConsole, green);

for(int j=0;j<i;j++)
{
cout<<l1.at(j);
}

SetConsoleTextAttribute(hConsole,norm);

for(int k=i;k<80;k++)
{
cout<<l1.at(k);
}

Sleep(100);
system("CLS");
}

-2

Решение

Это потому, что вы превышаете границы строки, которую вы передаете. Почему вы жестко закодировали значение 80 в своем коде?

0

Другие решения

Попробуй это

int len = strlen(l1) ;
for(int i=1;i<len;i++)
{
SetConsoleTextAttribute(hConsole, green);

for(int j=0;j<i;j++)
{
cout<<l1.at(j);
}

SetConsoleTextAttribute(hConsole,norm);

for(int k=i;k<len;k++)
{
cout<<l1.at(k);
}

Sleep(100);
system("CLS");
}
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector