循环问题

时间:2014-04-10 06:12:20

标签: c++ loops visual-c++ code-snippets

Visual C ++不断中止我的循环。 string 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 个答案:

答案 0 :(得分: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");
}

答案 1 :(得分:0)

这是因为你超出了你传递的字符串的界限。为什么要将80的值硬编码到代码中?