【C】一个读取文件记录器
分享一下!!!
#include<stdio.h> #include<windows.h> #define N 70000 //定义行数!!用空间换取时间 struct student { char name[20]; int num; }a[N]; int main() { void GetOpenFileLine(char *szFile); void otherFile(char *buffer); char buffer[256]; ZeroMemory(buffer,sizeof(buffer)/sizeof(char)); printf("请输入需要读取文件的【绝对路径】\n"); fflush(stdin); gets(buffer);//因为输入的文件中可能有空格等,所以用fgets otherFile(buffer); system("pause"); } void otherFile(char *buffer) { FILE *fp; char ch='\\'; int i,j=0; for(i=0;buffer[i]!='\0';i++) { if(buffer[i]==ch) { buffer[j++]='\/'; } else { buffer[j++]=buffer[i]; } } buffer[j]='\0'; fp=fopen(buffer,"r"); if(NULL==fp) { system("cls"); printf("can not open the file"); Sleep(3000); return; } else { GetOpenFileLine(buffer); } } void GetOpenFileLine(char *szFile) { int iCounter=0; int i=0; float persent=0; char buffer[256]; FILE *fp=fopen(szFile,"r"); while(!feof(fp)) { fgets(buffer,256,fp); iCounter++; } printf("文件一共有%d行\n",iCounter); fclose(fp); fp=fopen(szFile,"r"); while (!feof(fp)) { fscanf(fp,"%s %d ",a[i].name,&a[i].num); i++; persent=(float)i/iCounter; printf("\r"); printf("正在读取第%d行!\t已完成%0.2f%%",i,persent*100); Sleep(10); } }
既然选择了远方,就要风雨兼程~
posted on 2014-06-22 10:52 stupid_one 阅读(822) 评论(0) 编辑 收藏 举报