文件读写操作

文件信息:

102102  zhang    91
102102  hx          85
103102  hou         76
102102 zhang 69
102105  hx          55

1.文件读fgetc()——字符方式读,与putchar

#include<stdio.h>

int main(){
    FILE*fp;
    fp=fopen("2.txt","r");
    if(fp==NULL){
        printf("打开失败");
    }

    char ch;
    
    while((ch=fgetc(fp))!=EOF)
    {
        putchar(ch);
    }


    if((fclose(fp))==0){
        printf("文件关闭成功\n");
    }

    return 0;
}
  char ch;
    printf("读取信息为:\n");
   while(!feof(fp)){
       ch=fgetc(fp);
       putchar(ch);
   }

2.文件读fgets()——字符串读

 (1) char a[10];

   fgets(a,5,stdin);//fgets(字符串名,字符串长度,标准输入流stdin)

   printf("%s",a);

   (2)单独读取一行

   char a[100];
   fgets(a,50,fp);//fgets(字符串名,字符串长度,标准输入流stdin)
   printf("%s",a);
    

(3)全部读取

  char a[10000];
   while((fgets(a,1000,fp))!=NULL){
   printf("%s",a);
   }
    

3.文件读fscanf()——格式化方式读

#include<stdio.h>

int main(){
    FILE*fp;
    fp=fopen("2.txt","r");
    if(fp==NULL){
        printf("打开失败");
    }

    int i;
    int num;
    char name[10];
    int score;
    printf("读取信息为:\n");
    for(i=0;i<5;i++){
        
        fscanf(fp,"%d%s%d",&num,name,&score);
        printf("%d\t%s\t%d\n",num,name,score);
    }



    if((fclose(fp))==0){
        printf("文件关闭成功\n");
    }

    return 0;
}

4.文件读fread()——数据块方式读取文件

二进制文件  fread(buffer,size,count,fp)--bufffer存放输入数据的首地址,size数据块字节数,count要读写的数据块数,fp文件指针

   char buffer[256];
	int readCnt = fread(buffer,sizeof(buffer),1,fp);  /* 返回值为0 */
	//int readCnt = fread(buffer,1,sizeof(buffer),fp);  /* 返回值为11 */	
	printf("%s",buffer);

5.文件写fputc()——fputc(字符,文件指针)

#include<stdio.h>

int main(){
    FILE*fp;
    fp=fopen("2.txt","a+");
    if(fp==NULL){
        printf("打开失败");
    }

    char a='a';

    fputc(a,fp);


    if((fclose(fp))==0){
        printf("文件关闭成功\n");
    }

    return 0;
}

6.文件写fputs()——fputs(字符串,文件指针)

    char a[]="hello world!";

    fputs(a,fp);

7.文件写fprintf()——fprintf(文件指针,类型,名)

    int a=10;
    char name[]="hello world!";
    int score=100;
    fprintf(fp,"%d\t%s\t%d\n",a,name,score);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值