gpt4 book ai didi

c - 为什么 ftell 不能正确计算文件中的字母数?

转载 作者:行者123 更新时间:2023-12-04 04:44:21 26 4
gpt4 key购买 nike

我想计算文件中的字母数。我已经尝试使用 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:即使 a i 从 'rb' 更改为 'r' 模式,它也会继续给出 answear 7,尽管在第二种模式(r)中它会打印一些垃圾。该文件使用 Notepad++ 保存为 test.txt。
有 '\n' 的地方意味着我按下了 Enter 按钮:
P2\n
#\n

最佳答案

Software applications and operating systems usually represent a newline with one or two control characters:

Systems based on ASCII or a compatible character set use either LF (Line feed, '\n', 0x0A, 10 in decimal) or CR (Carriage return, '\r', 0x0D, 13 in decimal) individually, or CR followed by LF (CR+LF, '\r\n', 0x0D0A).

关于c - 为什么 ftell 不能正确计算文件中的字母数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18415321/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com