假设我想计算一些mFile像这样的字符:
while((c = getc(mFile)) != EOF){
chars[c]++;
}
Run Code Online (Sandbox Code Playgroud)
如果我试图向他们展示:
for(int f=0;f<256;f++) {
if(isprint(f) && chars[f]>0)
cout << (char)f << " " << (int)chars[f] << endl;
}
Run Code Online (Sandbox Code Playgroud)
所有字符打印都很好.但如果我这样做
cout << " " << (int)chars[32] << endl;
Run Code Online (Sandbox Code Playgroud)
然后它不会打印数字...... int我想是一些大的,因为它是负面的.我究竟做错了什么?是否getc上破,或不计空格?
谢谢
根据您对我的评论的回答,我会说问题可能char是在您的平台上签名,并且您的输入文件中有超过127个空格,因此chars[32]包装并变为负数.
为什么不为您的柜台使用更合适尺寸的类型?
| 归档时间: |
|
| 查看次数: |
218 次 |
| 最近记录: |