【C】一个读取文件记录器
2024-08-29 09:40:53
分享一下!!!
#include<stdio.h>
#include<windows.h>
#define N 70000 //定义行数!!用空间换取时间
struct student
{
char name[];
int num;
}a[N];
int main()
{
void GetOpenFileLine(char *szFile);
void otherFile(char *buffer);
char buffer[];
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=; for(i=;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();
return;
} else
{
GetOpenFileLine(buffer);
} } void GetOpenFileLine(char *szFile)
{
int iCounter=;
int i=;
float persent=;
char buffer[];
FILE *fp=fopen(szFile,"r");
while(!feof(fp))
{
fgets(buffer,,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*);
Sleep(); } }
最新文章
- 认识WCF
- js 下载图片与下载文件的方式一样;保存至本地 ASP.NET 方式
- Junit测试中的setup和teardown 和 @before 和 @After 方法
- js控制控件不可编辑
- EnumHelper枚举常用操作类
- centos配置中文显示和中文输入
- C++ 友元函数的函数指针
- 【转】【JAVA应用】多线程断点下载
- mysql插入数据后返回自增ID的方法,last_insert_id(),selectkey
- API函数详解:API大全总目录(按字母排列)
- 100个iOS开发面试题汇总
- 【转】Android中保持Service的存活
- 【值得收藏】一份非常完整的Mysql规范
- Cocos Creator 安装和启动,Dashboard 的介绍
- Python3学习之路~6.8 多态
- Node.js初探
- CreateDialog 注意事项
- html自适应布局,@media screen,媒体查询
- 人生第一个快速幂的题(HDU - 1097--A hard puzzle )
- Qt模态与非模态