-
用fgets和fputs实现,拷贝一个文件,例如将1.c的内容拷贝给2.c
-
用fgets计算一个文件的大小,要求封装成函数
-
用fgets计算一个文件有几行,要求封装成函数(linux操作系统以\n结尾,就算是最后一行也有一个'\n')
-
用fgets和fputs实现,拷贝一个文件,例如将1.c的内容拷贝给2.c
-
用fgets计算一个文件的大小,要求封装成函数
-
用fgets计算一个文件有几行,要求封装成函数(linux操作系统以\n结尾,就算是最后一行也有一个'\n')
相关代码
#include<stdio.h> #include"1.h" #include<unistd.h> #include<string.h> //复制 int copy(FILE*fp1,FILE*fp2) { char c=0; while(1) { c = fgetc(fp1); if(c==EOF) { break; } fputc(c,fp2); } return 0; } //计算文件的大小 int len(FILE*fp1) { char c=fgetc(fp1); int count=0; while(c!=EOF) { c=fgetc(fp1); count++; } return count; } //计算行数 int line(FILE*fp1) { char c=fgetc(fp1); int count=0; while(c!=EOF) { c=fgetc(fp1); if(c=='\n') { count++; } } return count; } //s复制 int copys(FILE*fp1,FILE*fp2) { char str[500] = ""; while((fgets(str,sizeof(str),fp1)) != NULL) { fputs(str,fp2); } return 0; } //计算文件的大小 int lens(FILE*fp1) { char c[500] = ""; int n1=0; while((fgets(c,sizeof(c),fp1)) != NULL) { n1+=strlen(c); } return n1; } //计算行数 int lines(FILE*fp1) { char c[500] = ""; int n2=0; while((fgets(c,sizeof(c),fp1)) != NULL) { n2++; } return n2; }
main.c
#include<stdio.h> #include<unistd.h> #include"1.h" int main(int argc, const char *argv[]) { FILE *fp1 = fopen(argv[1],"r"); if(NULL == fp1) { perror("fopen"); return EOF; } FILE *fp2 = fopen(argv[2],"w"); if(NULL == fp2) { perror("fopen"); return EOF; } //调用复制函数 copy(fp1,fp2); //调用计算大小函数 fclose(fp1); FILE *fp3 = fopen(argv[1],"r"); int num=len(fp3); printf("%d\n",num); //调用计算行数函数 fclose(fp3); FILE *fp4 = fopen(argv[1],"r"); int n=line(fp4); printf("%d\n",n); fclose(fp4); //调用s复制 FILE *sfp1 = fopen(argv[1],"r"); FILE *sfp2 = fopen(argv[2],"w"); copys(sfp1,sfp2); //调用s计算文件大小 FILE *sfp3 = fopen(argv[1],"r"); int l = lens(sfp3); printf("%d\n",l); //调用s计算行数 FILE *sfp4 = fopen(argv[1],"r"); int k = lines(sfp4); printf("%d\n",k); fclose(fp1); fclose(fp2); return 0; }
7.27日作业
最新推荐文章于 2024-10-16 11:55:59 发布