文章目录创作本文的目的:记录自己的学习历程
- 一、用fgetc计算一个文件的大小,要求封装成函数
- 二、用fgetc计算一个文件有几行,要求封装成函数(linux操作系统以n结尾,就算是最后一行也有一个'n')
- 三、用fgets和fputs实现,拷贝一个文件,例如将1.c的内容拷贝给2.c
- 四、用fgets计算一个文件的大小,要求封装成函数
- 五、用fgets计算一个文件有几行,要求封装成函数(linux操作系统以n结尾,就算是最后一行也有一个'n')
- 六、主函数与运行结果
一、用fgetc计算一个文件的大小,要求封装成函数
void fgetc_size(FILE *name)
{
int size=0;
char c=0;
while((c=fgetc(name))!=EOF)
{
size++;
}
printf("文件大小为:%d Byten",size);
}
二、用fgetc计算一个文件有几行,要求封装成函数(linux操作系统以n结尾,就算是最后一行也有一个’n’)
void fgetc_line(FILE *name)
{
int size=0;
char c=0;
while((c=fgetc(name))!=EOF)
{
if(c==10)
size++;
}
printf("文件行数为:%d 行n",size);
}
三、用fgets和fputs实现,拷贝一个文件,例如将1.c的内容拷贝给2.c
void fgets_and_fputs_copy(FILE *name)
{
FILE *fpp=fopen("./copy.txt","w");
if(NULL==fpp)
{
perror("fopen");
return;
}
char ch[2];
char *c;
while((c=fgets(ch,sizeof(ch),name))!=NULL)
{
fputs(c,fpp);
}
if(fclose(fpp)<0)
{
perror("fclose");
return;
}
}
四、用fgets计算一个文件的大小,要求封装成函数
int fgets_size(FILE *name)
{
int size=0;
char s[2]="";
while(fgets(s,sizeof(s),name)!=NULL)
{
size++;
}
printf("文件大小为:%d Byten",size);
return size;
}
五、用fgets计算一个文件有几行,要求封装成函数(linux操作系统以n结尾,就算是最后一行也有一个’n’)
int fgets_line(FILE *name)
{
int size=0;
char s[2]="";
while(fgets(s,sizeof(s),name)!=NULL)
{
if(s[0]==10)
size++;
}
printf("文件行数为:%d 行n",size);
return size;
}
六、主函数与运行结果
int main(int argc, const char *argv[])
{
FILE *fp=fopen(argv[1],"r+");
if(NULL==fp)
{
perror("fopen");
return-1;
}
fgetc_size(fp);
rewind(fp);
fgetc_line(fp);
rewind(fp);
fgets_size(fp);
rewind(fp);
fgets_line(fp);
rewind(fp);
fgets_and_fputs_copy(fp);
if(fclose(fp)<0)
{
perror("fclose");
return -1;
}
return 0;
}



