1.用fgets计算一个文件的行数,要求封装成函数
#include <stdio.h>
#include <string.h>
int lines(FILE*fp)
{
int line=0;
char arr[20]="";
while(fgets(arr,sizeof(arr),fp)!=NULL)
{
if(arr[strlen(arr)-1]=='\n')
{
line++;
}
}
printf("行数%d\n",line);
return line;
}
int main(int argc, const char *argv[])
{
FILE*fp=fopen("./zy.txt","r+");
if(NULL==fp)
{
perror("fopen");
return -1;
}
int a=lines(fp);
fclose(fp);
return 0;
}
2.用fread fwrite拷贝一个文件
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
FILE*fp=fopen("./zy.txt","r+");
if(NULL==fp)
{
perror("fopen");
return -1;
}
FILE*fp2=fopen("./zy2.txt","w+");
if(NULL==fp2)
{
perror("fopen");
return -1;
}
char a;
while(fread(&a,sizeof(a),1,fp)==1)
{
fwrite(&a,sizeof(a),1,fp2);
}
fclose(fp);
fclose(fp2);
printf("文件拷贝结束\n");
return 0;
}