#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
FILE *fp;
char s[80];
int len=0;
fp=fopen("pink.txt","r");
while(fgets(s,79,fp)!=NULL)
len=len+strlen(s); /* length of each string */
/* spaces and newlines are also counted */
fclose(fp);
printf("length of file = %d",len);
return 0;
}
我在这个片段上工作,它计算字符串并将它们添加到变量len中, 最终用作文本的大小,因为字符占用一个字节, 但是当我点击记事本的属性时,它给了我完全错误的答案。记事本上15个字节vs 18个字节,如果我删除每个新行和空格我的代码和记事本都给出了准确答案,所以我知道它因为新行,可以解释一下有什么问题。
这里是文本文件中的内容。
qwe
ert
asd
zxc
答案 0 :(得分:1)
检查文件中新换行的编码方式。根据您的系统,新行可以在字符串中的两个字符上进行编码:
查看Wikipedia page了解详情