c++输出ASCII字符时出现死循环

题目要求输出ascii码为32-127的字符
#include
#include
using namespace std;

int main()
{
char a;
a = 32;
int i;

for (i = 32; i < 128; a++)
{
    cout << a << endl;
    a++;
}
system("pause");
return 0;

}


在vs2013可以编译通过,但是执行时却出现了死循环,请问一下是哪里出现了问题?

for (i = 32; i < 128; a++),是不是应该改成for (i = 32; i < 128; i++)

楼上正解,你的i没有做运算,会永远满足条件,所以会是死循环。

for (i = 32; i < 128; a++)
{
i = a;
cout << a << endl;
a++;
}
system("pause");
return 0;
在里面给 i 进行赋值也行啊。但是一般情况下要在for循环里面写的是i++,而不是a++;

因为你的程序中i的值已经没有发生变化,一直是32,永远小于128,所以不满足i<128的要求,所以就死循环了,把上面的a++变为i++就好了