【发布时间】:2014-04-26 06:47:45
【问题描述】:
以下代码 sn-p 旨在计算输入文本后文件中遇到的所有符号,下一步是计算所有字符的出现次数(例如 'a' 遇到 3 次,'b' 0 次等.)。但是,当我编译时,循环变为无限,并且计数始终为 0。我的问题是它是否可以以其他方式修复或重写。
char type, c, text[100]; counts[100];
int count=0, i;
while((type=getchar())!=EOF) {
fputc(type, f); count++;
}
printf("Symbols found: %d", count-1);
rewind(f);
while(fscanf(f, "%s", &text)) {
for (i = 0; i < strlen(text); i++) {
counts[(text[i])]++;
printf("The %d. character has %d occurrences.\n", i, counts[i]);
}
}
【问题讨论】:
-
你在哪里设置
size? -
为什么不计算第一个
getchar()循环中的字符数? -
谢谢,酒保。已编辑。
-
字符代码大于 100。
-
您不应该在将它们相加的同一循环中打印计数。您需要先将所有计数相加,然后再循环打印每个字符的计数。
标签: c file for-loop while-loop