当前位置: 首页 > news >正文

论坛式网站建设上海做网站谁好

论坛式网站建设,上海做网站谁好,做网站类网站费用,找人做网站做的很烂目录 字符方式读入文件 数据块方式读写文件 文件定位与随机读写 文件中数据的修改 字符方式读入文件 1.向文件中写入(输入字符) 用 fputc 函数或 puts 函数可以把一个字符写到磁盘文件中去。 int fputc(int ch,FILE * fp) ch 是要输出的字符&#…

目录

字符方式读入文件

数据块方式读写文件

文件定位与随机读写

文件中数据的修改


字符方式读入文件

1.向文件中写入(输入字符)

        用 fputc 函数或 puts 函数可以把一个字符写到磁盘文件中去。

int fputc(int ch,FILE * fp)

        ch 是要输出的字符,他可以是一个字符常量,也可以是一个字符变量;fp是文件指针变量,已经指向了一个由fopen函数打开的文件。

        功能:fputc(ch,fp)函数将字符输入到fp所指向的流式文件中去。如果输出成功,返回值就是输入的字符,失败则返回EOF。

从键盘输入遗传字符,以回车符\n结束,然后输入到磁盘文件中去

#include<stdio.h>
#include<stdlib.h>
int main()	
{//从键盘输入遗传字符,以回车符\n结束,然后输入到磁盘文件中去FILE * fp;char ch;if((fp=fopen("output1.txt","w"))==NULL){printf("无法创建文件!");exit(0); }while((ch=getchar())!='\n'){fputc(ch,fp);}fclose(fp);return 0;
}

2.从文件中读出一个字符

        用 fgetc 函数或者 getc 函数可以从磁盘中读出一个字符。

int fgetc(FILE * fp)

        从磁盘文键逐个读入字符,并在终端输出

#include<stdio.h>
#include<stdlib.h>
int main()
{//从磁盘文键逐个读入字符,并在终端输出FILE * fp;char ch;if((fp=fopen("output1.txt","r"))==NULL){printf("无法打开文件!\n");exit(0);	} while((ch=fgetc(fp))!=EOF){putchar(ch);}fclose(fp);return 0;
}

3.向文件中写入一个字符串

        用 fputs 函数可以把一个字符串输入到指定的流式文件中,其原型为

int fputs(char * fp,FILE * stream)

        其中,string为字符串,stream为文件指针。

 把指针string所指向的字符串输出到文件指针stream所指向的文件中,但字符串结束符‘\0’不输出

 从键盘输入若干行字符,把他们输出到磁盘文件中保存起来。

#include<stdio.h>
#include<stdlib.h>
int main()
{//从键盘输入若干行字符,把他们输出到磁盘文件中保存起来。FILE * fp;char string[81];if((fp=fopen("data.txt","w"))==NULL){printf("未找到此文件!");exit(0);	} while(gets(string)!=NULL)//ctrl+Z结束 {fputs(string,fp);fputc('\n',fp);//在每个字符串后加一个换行符 }fclose(fp);return 0;
}

数据块方式读写文件

使用数据块的方式对二进制问价进行读写操作,涉及的函数有两个:fread() 和 fwrite() 。

建立学生档案文件,每个记录包括学生的姓名,性别,年龄和入学总分 

#include<stdio.h>
#include<stdlib.h>
struct student
{char name[10];char sex;int age;float score;
};
int main()
{FILE * fp;struct student stud;char str[80],ch='y';if((fp=fopen("stud2.rec","wb"))==NULL)//二进制只写方式打开 {printf("无法打开文件!\n");exit(0);}while(ch=='y'||ch=='Y'){printf("输入姓名:");gets(stud.name);printf("输入性别:");gets(str);stud.sex=str[0];printf("输入年龄:");gets(str);stud.age=atoi(str);//年龄:将字符串转换为整型 printf("输入分数:");gets(str);stud.score=atof(str);//分数:将字符串转换为浮点型fwrite(&stud,sizeof(stud),1,fp);//写入数据到文件do{printf("继续输入:(y/n)?  ");gets(str);ch=str[0];} while(!(ch=='y'||ch=='n'||ch=='Y'||ch=='N'));}fclose(fp);return 0;
}

从磁盘文件按记录读取数据,并显示读入的内容,直到文件尾

#include<stdio.h>
#include<stdlib.h>
struct student
{char name[10];char sex;//'M',或'F' int age;float score;
};
int main()
{//从磁盘文件按记录读取数据,并显示读入的内容,直到文件尾struct student stud;FILE * fp;if((fp=fopen("stud2.rec","rb"))==NULL)	{printf("无法打开文件stud2.rec!\n");exit(0); }while(fread(&stud,sizeof(stud),1,fp)==1){printf("\n姓名:%s",stud.name);printf("\n性别:%c",stud.sex);printf("\n年龄:%d",stud.age);printf("\n分数:%.2f",stud.score);} printf("\n");fclose(fp);return 0;
}

文件定位与随机读写

文件的定位:利用fesk()和ftell()函数编写程序测量一个文件的长度 

#include<stdio.h>
#include<stdlib.h> 
//文件的定位
//利用fesk()和ftell()函数编写程序测量一个文件的长度 
long filesize(FILE * fp)
{long curpos,length;//当前文件读写位置指针相当于文件开头的位移量 curpos=ftell(fp);//保存文件的当前读写位置指针 fseek(fp,0L,SEEK_END);//文件读写位置指针置于文件尾端length=ftell(fp);//求文件长度fseek(fp,curpos,SEEK_SET);//恢复文件的原读写位置的指针return length; 
}
long filesize(FILE * stream);
int main()
{FILE * stream;char filename[10];printf("\n输入文件名:");scanf("%s",filename);if((stream=fopen(filename,"rb"))==NULL){printf("无法打开文件:%s\n",filename);exit(0);}printf("%s的文件大小是%ld(byte)\n",filename,filesize(stream));fclose(stream);return 0;
}

随机读写: 

由之前建立的学生入学档案的磁盘文件stud.rec中,假设学生按照分数升序排列。
现要求设计一个程序,输入一个整型值给n,输出分数最高的n个学生记录,即排在尾部的n个学生记录 

#include<stdio.h>
#include<stdlib.h>
struct student
{char name[10];char sex;//'M',或'F' int age;float score;
};
//由之前建立的学生入学档案的磁盘文件stud.rec中,假设学生按照分数升序排列。
//现要求设计一个程序,输入一个整型值给n,输出分数最高的n个学生记录,即排在尾部的n个学生记录 
int main()
{FILE * fp;struct student stud;int n;if((fp=fopen("stud.rec","rb"))==NULL){printf("无法打开文件");exit(0);	} printf("\n请输入一个整数:");scanf("%d",&n);fseek(fp,-n*sizeof(stud),SEEK_END); //定位到倒数第n个学生记录while(fread(&stud,sizeof(stud),1,fp)==1){printf("\n姓名:%s",stud.name);printf("\n性别:%c",stud.sex);printf("\n年龄:%d",stud.age);printf("\n分数:%.2f",stud.score);	} return 0;
}

文件中数据的修改

将之前的成绩表中的女生成绩加五分

#include<stdio.h>
#include<stdlib.h>
struct student
{char name[10];char sex;//'M',或'F' int age;float score;
};
int main()
{//从磁盘文件按记录读取数据,并显示读入的内容,直到文件尾struct student stud;FILE * fp;if((fp=fopen("stud.rec","rb"))==NULL)	{printf("无法打开文件stud2.rec!\n");exit(0); }while(fread(&stud,sizeof(stud),1,fp)==1){printf("\n姓名:%s",stud.name);printf("\n性别:%c",stud.sex);printf("\n年龄:%d",stud.age);printf("\n分数:%.2f",stud.score);} printf("\n");fclose(fp);return 0;
}

输入一个学生的姓名,编写程序将stud.rec中该学生的记录删除 

#include<stdio.h>
#include<stdlib.h>
#include<string.h> 
struct student
{char name[10];char sex;//'M',或'F' int age;float score;
};
//输入一个学生的姓名,编写程序将stud.rec中该学生的记录删除 
int main()
{char name[10];FILE * fp_old,* fp_new;struct student stud;if((fp_old=fopen("stud.rec","rb"))==0)//读方式打开原数据文件 {printf("\n不能打开文件");exit(0); }if((fp_new=fopen("stud3.rec","wb"))==0)//写方式创建新数据文件 {printf("\n不能创建文件");exit(0); } printf("请输入要删除的学生姓名:");gets(name);while(fread(&stud,sizeof(stud),1,fp_old)==1){//在原文件中读取一个学生记录在stud中if(strcmp(stud.name,name)!=0){fwrite(&stud,sizeof(stud),1,fp_new);	} } fclose(fp_old);fclose(fp_new);remove("stud.rec");//删除原文件rename("stud3.rec","stud.rec"); //将新文件重命名 return 0;
}

向文件中插入数据

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct student
{char name[10];char sex;//'M',或'F' int age;float score;
};
int main()
{FILE * fp;struct student x,t={"Alex",'f',20,566};if((fp=fopen("stud.rec","a+b"))==0){printf("\n\t无法打开文件!\n");exit(0);}fread(&x,sizeof(struct student),1,fp);//从文件中读一条学生记录fseek(fp,0L,SEEK_END); fwrite(&t,sizeof(struct student),1,fp);//将t中的数据追加到文件尾rewind(fp);while(fread(&x,sizeof(struct student),1,fp)==1){printf("\n%15s%4c%8d%8.2f",x.name,x.sex,x.age,x.score);	} fclose(fp);return 0;
}

http://www.yayakq.cn/news/437738/

相关文章:

  • 防蜘蛛抓取网站代码云南建设工程招标网站
  • 怎么给自己制作一个网站seo静态页源码
  • 能打开任何网站浏览器下载网址大全浏览器
  • 北京招聘网站设计师网站不备案可以做微信小程序么
  • 音乐网站开发编程语言域名购买国外
  • 在线建站做电商需要学哪些基础
  • 网站app生成器视频点播网站建设
  • 网站收录量是什么意思酒店加盟
  • 律师网站建设 优帮云淮北在建项目
  • 校园类网站建设建设行网站修改电话
  • 网站开发的预算网页平台做个业务推广
  • 二级网站的建设濮阳河南网站建设
  • 自己网站首页如何设置自己做的网站怎么给别人访问
  • 四川住房和城乡建设厅网站不能打开网页制作搜题软件
  • 莆田市网站建设php免费网站建设
  • 谷歌商店paypal三件套seo网站排名优化服务
  • 网站点击率上海电子商务网站
  • 公司建网站怎么做网站建设制作免费
  • 如何制作一个好网站泉州企业建站程序
  • 专业手机网站建设企业域名证书如何查询
  • 建设银行陕西省分行网站群辉wordpress
  • 手游网站怎么做网站上的图用美图秀秀做可以吗
  • 互联网网站建设门户网学做网站论坛vip账号破解
  • 咸阳网站网站建设监理工程师查询系统入口
  • 网站自助搭建平台星子县网站建站公司
  • 织梦关闭网站鹤岗住房和城乡建设局网站
  • 广州网站平台怎么做网站维护教程
  • 需要锦州网站建设推广策略是什么
  • 展示型网站建设曲靖网站建设公司靖网站建设
  • 淘宝做导航网站好dw网站建设基本流程