用于查找文本文件大小的小片段
Small snippet For Finding Text File Size
#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 字节与记事本上的 18 字节,如果我删除每一个新行和空格,我的代码和记事本都会给出准确的答案,所以我知道它是因为新行,有人可以解释什么是错的。
这是文本文件中的内容。
qwe
ert
asd
zxc
检查文件中换行符的编码方式。根据您的系统,新行可以在字符串中的两个字符上编码:
- 回车 Return(\r 或 CR)
- 换行(\n 或 LF)
- 两者回车Return+换行(\r\n或CRLF)
查看Wikipedia page了解更多详情
#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 字节与记事本上的 18 字节,如果我删除每一个新行和空格,我的代码和记事本都会给出准确的答案,所以我知道它是因为新行,有人可以解释什么是错的。
这是文本文件中的内容。
qwe
ert
asd
zxc
检查文件中换行符的编码方式。根据您的系统,新行可以在字符串中的两个字符上编码:
- 回车 Return(\r 或 CR)
- 换行(\n 或 LF)
- 两者回车Return+换行(\r\n或CRLF)
查看Wikipedia page了解更多详情