AC
#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;
}
Run Code Online (Sandbox Code Playgroud)
A.TXT
AAABBBAAA
Run Code Online (Sandbox Code Playgroud)
我不明白为什么for循环运行完美但while循环只运行一次.
输出看起来像
小智 3
在循环的第一次运行中for,整个文件被用完,并且您永远不会重置它。所以它只会成功搜索到 character 0x41。
您需要在while循环后执行以下两个操作之一:
fseek(file, 0, SEEK_SET);
rewind(file);
Run Code Online (Sandbox Code Playgroud)