我想计算这样的文件字符:
#include <stdio.h>
#include <stdlib.h>
int main(){
int d=0;
char filename[25];
FILE *file;
printf("Enter file name to be read (Text File!) : ");
gets(filename);
file = fopen(filename, "rt");
if(file == NULL){
printf("Failed to open file...");
exit(1);
}
fseek(file, 0L, SEEK_SET);
while( !feof(file) ){
fseek(file, 1L, SEEK_CUR);
d++;
}
printf("%d", d);
}
之后im打印d并且它的值为0 .. 并且文件剂量有chars。大约150个字符..
答案 0 :(得分:2)
fseek()
允许您超越EOF
。
要获取文件大小,您可以fseek(file, 0, SEEK_END)
然后拨打ftell(file)
。
要逐个字符阅读,您可以使用for (i = 0; fgetc(file) != EOF; i++);
。
答案 1 :(得分:1)
我想知道该程序是否会返回,根据fseek()
's documentation feof()
永远不会返回任何内容<>0
:
成功致电 fseek()函数清除流
的文件结束指示符
使用fseek()
确定文件大小:
FILE * pf = ...;
fseek(pf, 0, SEEK_END);
long size = ftell(pf);
答案 2 :(得分:0)
我最后做到了这一点并且有效。
fseek(file, 0, SEEK_END);
然后打电话 FTELL(文件);
我试着这样做:for (i = 0; fgetc(file) != EOF; i++);
它并没有奏效......但现在它是0.0 谢谢大家..!