I don't understand what's going on in here in this functions.. i have seen it may times.
int readint()
{
int cc = getc(stdin);
for (;cc < '0' || cc > '9';) cc = getc(stdin);
int ret = 0;
for (;cc >= '0' && cc <= '9';)
{
ret = ret * 10 + cc - '0';
cc = getc(stdin);
}
return ret;
}