计算字符(再次!)

时间:2010-08-26 21:12:12

标签: c++

假设我想像这样计算一些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是否会中断或不计算空格?

由于

1 个答案:

答案 0 :(得分:5)

根据您对我的评论的回答,我会说问题可能是您的平台上已签署char,并且您的输入文件中有超过127个空格,因此{{1}包裹并变得消极。

为什么不为计数器使用更合适尺寸的类型?