假设我想像这样计算一些mFile
中的字符:
while((c = getc(mFile)) != EOF){
chars[c]++;
}
如果我试图向他们展示:
for(int f=0;f<256;f++) {
if(isprint(f) && chars[f]>0)
cout << (char)f << " " << (int)chars[f] << endl;
}
所有字符打印都很好。但是如果我做的话
cout << " " << (int)chars[32] << endl;
然后它不会打印数字...我想是一些大的int
,因为它是否定的。我究竟做错了什么? getc
是否会中断或不计算空格?
由于
答案 0 :(得分:5)
根据您对我的评论的回答,我会说问题可能是您的平台上已签署char
,并且您的输入文件中有超过127个空格,因此{{1}包裹并变得消极。
为什么不为计数器使用更合适尺寸的类型?