c语言文件的操作

一文件的打开和关闭
 1:打开
 FILE *p;
 p=fopen(文件名,使用文件方式);
 文件名表示一个路径,如:c:\\text.txt
 使用文件的方式:
 r(read)--->读   w(write)--->写 
  t(txt) -->文本文件 
 b(banary)-->二进制文件 
 +:---->读和写
a(append)--->追加(java中的StringBuffer里面就封装了append这个方法)

 2:文件的关闭
 fclose(文件指针)


#include
#include
void main(){
 FILE *f;
 //文件如果打开失败,则退出程序
 if((f=fopen("c:\\myfile.txt","w"))==NULL){
  printf("文件打开失败");
  exit(0);
 }
 fclose(f);
}


二:文件的写
 1:字符写入函数fputc(字符量,文件指针);  //成功,则返回一个向文件写的内容,否则为0
 2:字符串写入函数fputs(字符串,文件指针);
 3:格式化写入 fprintf(文件指针,格式化字符串,输出列表);
 4: 写入数据块函数fwrite()
 //输入五行字符串,将其写入到c:\\myfile.txt 
 #include
 #include
 void main(){
 //FILE 一定是大写  NULL也一定是大写
 FILE *f;
 char ch[80],*p=ch;
 int n;
 if((f=fopen("c:\\myfile.txt","w"))==NULL){
  printf("文件打开失败");
  exit(0);
 }
 
 printf("请输入字符串\n");
 for(n=1;n<=5;n++){
  gets(p);
  //用字符的方式写入
  //while(*p!='\0'){
  // fputc(*p,f);
  // p++;
 // }
  //用字符串的方式写入
  fputs(p,f);
  fputc('\n',f);
 }
 fclose(f);
 }

 

 //这个程序是以每行5个数据输入到文件c:\\myfile.txt当中
 #include
#include
//给a数组赋值
void getdata(int a[],int n){
 for(int i=0;i
  a[i]=(rand()�)+10;//产生10到99的随机数
 }
}
void putdata(int a[],int n){
 FILE *f;
 if((f=fopen("c:\\myfile.txt","w"))==NULL){
  printf("文件打开失败");
  exit(0);
 }
 for(int i=0;i
  fprintf(f,"]",a[i]);
  if((i+1)%5==0)
   fprintf(f,"\n");
 }
}
void main(){
 int a[20];
 getdata(a,20);
 putdata(a,20);
}


 //从键盘输入5个学生数据,以二进制写入到文件中
 #include
#include
#include
struct student{
 char name[10];
 int age;
 
}stu[5],*pp;

void main(){
 FILE *f;
 int i;
 if((f=fopen("c:\\myfile.dat","wb"))==NULL){
  printf("文件打开失败");
  exit(0);
 }
 
 printf("请输入学生的数据\n");
 pp=stu;
 for(i=0;i<5;i++,pp++){
  scanf("%s%d",pp->name,&pp->age);
 }
 
 printf("stu的大小是:%d\n",sizeof(stu));
 fwrite(pp,sizeof(stu),5,f);
 fclose(f);
 
}

三:文件的读
 1:字符的读fgetc(文件指针) 返回一个字符
 2:fgets(字符数组名,n,文件指针);  
  fgets(str,11,fp);//从文件读取一个长度11字符串放到str中
 3:格式化读取函数fprintf(文件指针,格式字符串,输出列表);
  fprintf(fp,"%d%s",j,ch);
 
 4:数据块读函数fread(结构体等的指针,sizeof(struct stu),2,文件的指针);

 




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值