-
用fgetc计算一个文件的大小,要求封装成函数
int si_ze(const char *file) { FILE *fp=fopen(file,"r"); if(NULL==fp) { perror("fopen"); return -1; } int count=0; while(fgetc(fp)>=0) { count++; } fclose(fp); return count; }
-
用fgetc计算一个文件有几行,要求封装成函数(linux操作系统以\n结尾,就算是最后一行也有一个'\n')
int hang(const char *file) { FILE *fp=fopen(file,"r"); if(NULL==fp) { perror("fopen"); return -1; } int ha_ng=0; char c; while((c=fgetc(fp))!=EOF) { if(c=='\n') { ha_ng++; } } fclose(fp); return ha_ng; }
-
用fgets和fputs实现,拷贝一个文件,例如将1.c的内容拷贝给2.c
int copy(const char *file1,const char *file2) { FILE *fp=fopen(file1,"a+"); FILE *op=fopen(file2,"a+"); if(NULL==fp) { perror("fopen"); return -1; } if(NULL==op) { perror("fopen"); return -1; } char str[50]; while(fgets(str,sizeof(str),fp)!=NULL) { fputs(str,op); } fclose(fp); fclose(op); return 0; }
-
用fgets计算一个文件的大小,要求封装成函数
int si_ze_gets(const char *file) { FILE *fp=fopen(file,"r"); if(NULL==fp) { perror("fopen"); return -1; } int num=0; char str[50]; while(fgets(str,sizeof(str),fp)!=NULL) { int i=0; while(str[i]!='\0') { i++; } num=num+i; } fclose(fp); return num; }
-
用fgets计算一个文件有几行,要求封装成函数(linux操作系统以\n结尾,就算是最后一行也有一个'\n')
int hang_gets(const char *file) { FILE *fp=fopen(file,"r"); if(NULL==fp) { perror("fopen"); return -1; } int line=0; char str[20]; while(fgets(str,sizeof(str),fp)!=NULL) { int i=0; while(i<sizeof(str)) { if(str[i]=='\n') { line++; break; } i++; } } fclose(fp); return line; }
-
结果图
0727 IO进程day1
于 2022-07-27 20:16:46 首次发布