【发布时间】:2016-11-04 07:54:59
【问题描述】:
交流
#include <stdio.h>
int main(int argc, char *argv[])
{
int i, counter=0;
char c;
FILE *file=fopen("a.txt","r");
for (i = 0x41 ; i < 0x45; i++)
{
printf("%c(%x) ",i ,i);
while ((c = fgetc(file)) != EOF)
{
if (i == (char) c)
counter++;
}
printf("%d\n", counter);
counter=0;
}
fclose(file);
return 0;
}
a.txt
AAABBBAAA
我不明白为什么for 循环运行完美,而while 循环只运行一次。
输出看起来像
【问题讨论】:
-
也许你需要
rewind? -
您如何确定
while循环只运行了一次? -
@DavidSchwartz 可能是通过查看计数器值。 (我不久前发布并删除了相同的评论。):)
-
因为在你读完文件后你现在就在文件的末尾了?
-
rewind(file)在 while 循环之后会完成这项工作