stdin上最受欢迎的角色

时间:2015-01-17 21:59:05

标签: c ascii

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    int ascii[255]; //starts as empty table, will hold all the character occurences
    memset(ascii, 0, sizeof(ascii)); // sets all table values to 0
    int c=0;
    int i=0;
    while (getchar() !=EOF){
        c=getchar();
        ascii[c]=(ascii[c]+1);
    }
    for (i=0;i<255;i++){
        printf("%d;",ascii[i]);
    }
    return 0;
}

您好,我已经创建了上面的代码来检查.txt文件中每个字符出现的次数,但是我得到了非常不稳定的行为,我得到的数字根本不会反映文件的内容。你能告诉我我的错误在哪里吗?

1 个答案:

答案 0 :(得分:2)

您有两个getchar()来电,因此每次通话中都缺少一个字符,请更改此

while (getchar() != EOF)

while ((c = getchar()) != EOF)

并删除下一行

c = getchar();