文件的基础

fgetc,fputc/fclose,fopen

#include <stdio.h>
#include <stdlib.h>
//int fclose  0 -1/EOF
//File* fopen    NULL
//fputc('',fp)   EOF/-1 char
//fgetc          EOF
int main() {
    FILE *fp;//r+对文本又读又写
    fp= fopen("file.txt","r+");
    if(fp==NULL){
        //定位失败原因
        perror("fopen");
        return -1;
    }
    //ptr,注意优先级的问题
    char c;
    while((c=fgetc(fp))!=EOF){
        printf("%c",c);
    }
    c= fputc('H',fp);
    if(-1==c){
        perror("fput");
    }

    fclose(fp);
    return 0;
}

fread,fwrite(仅它们可操作数据类型)/fgets,fputs(row,str)

int main() {
    char buf[20]="hello\nworld";
    FILE *fp;
    fp= fopen("file.txt","r+");
    if(fp==NULL){
        perror("fopen");
        return -1;
    }
    int ret;
    ret= fwrite(buf,sizeof(char), strlen(buf),fp);
    ret=fread(buf,sizeof(char),sizeof(buf),fp);
    printf("%d",ret);
    fclose(fp);
    return 0;
}

//ret= fwrite(&i,sizeof(int),1,fp);

i=0; fread(&i,sizeof(int),1,fp); printf("i=%d",i);

乱码用程序来看

r+二进制模式可以有多种结构

fgets()
char buf[20]= {0};
    FILE *fp;
//    int i=123456;
    fp= fopen("file.txt","r+");
    if(fp==NULL){
        perror("fopen");
        return -1;
    }
    while ((fgets(buf,sizeof(buf),fp))!=NULL){
        //每次读一行文件结尾是Null
        printf("%s",buf);
    }

fputs()//fwrite可替代
(fgets(buf,sizeof(buf),stdin)//在读标准输入,fgets会读换行符,而gets不会
  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值