我想计算文件中的字母数。我已经尝试使用 Windows 和 Linux 测试编辑器编写文件,但两者都给出相同的值 (7)。该文件有 5 个字符('P','2','\n','#','\n'),为什么 ftell 返回值 7 而不是 5?
int main(void){
unsigned char *px=NULL;
int c=0,size_px;
FILE *arq;
arq = fopen("test.txt","rb");
px = (unsigned char*) malloc(100*sizeof(unsigned char));
fseek(arq,0,SEEK_END); // go to the end of file
size_px = ftell(arq); //count the letters
fseek(arq,0,SEEK_SET); // return to the begin of file
fread(px,sizeof(unsigned char),size_px,arq);
printf("|%s| QTY:|%d|",px,size_px);
}
Ps:即使ai从'rb'模式变为'r'模式,它也会继续给出答案7,尽管在第二种模式(r)中它会打印一些垃圾。该文件使用 Notepad++ 保存为 test.txt。有 '\n' 表示我按下了 Enter 按钮:
P2\n
#\n