unsigned (c+1)

场景:expression unsigned(c+1)< 256 error ,求解决办法.

expression unsigned(c+1)< 256 error ,求解决方法....
#include<fstream>
#include<iostream>
#include<string>
#include<cctype>
using namespace std;

void count(char k);
long amount[27]; //统计数据存放
int main()
{
string name, tem;
cin>>name;
ifstream in(name.c_str(), ios::in);
if(in)
while(getline(in, tem)){
for(string::size_type iter = 0; iter != tem.size(); iter++){
tem[iter] = tolower(tem[iter]);
count(tem[iter]);
}
}
for(int iter = 0, l_iter = 97; iter != 27; iter++, l_iter++){
if(iter != 26)
cout.put(l_iter)<<"出现的次数为: "<<amount[iter]<<endl;
else
cout<<"标点符号出现的次数为: "<<amount[iter]<<endl;
}



}

void count(char k)
{
switch(k){
case 'a':
++amount[0];
break;
case 'b':
++amount[1];
break;
case 'c':
++amount[2];
break;
case 'd':
++amount[3];
break;
case 'e':
++amount[4];
break;
case 'f':
++amount[5];
break;
case 'g':
++amount[6];
break;
case 'h':
++amount[7];
break;
case 'i':
++amount[8];
break;
case 'j':
++amount[9];
break;
case 'k':
++amount[10];
break;
case 'l':
++amount[11];
break;
case 'm':
++amount[12];
break;
case 'n':
++amount[13];
break;
case 'o':
++amount[14];
break;
case 'p':
++amount[15];
break;
case 'q':
++amount[16];
break;
case 'r':
++amount[17];
break;
case 's':
++amount[18];
break;
case 't':
++amount[19];
break;
case 'u':
++amount[20];
break;
case 'v':
++amount[21];
break;
case 'w':
++amount[22];
break;
case 'x':
++amount[23];
break;
case 'y':
++amount[24];
break;
case 'z':
++amount[25];
break;
default:
if(isgraph(k))
++amount[26];
}
}





当读入文件比较大的时侯,会出现expression unsigned(c+1)< 256 error,求解决方案..
谢谢!!



------解决方案--------------------
传给函数count()的值大于了0xfe.