C语言 文件操作1--二进制文件与文本文件

//写文件两种方式(文本文件和二进制文件)

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int readtxt(char *path){//传入文件地址
    int ERRO_MSG = 0;
    if (path==NULL)
    {
        ERRO_MSG = 1;
        printf("文件路径不可以为空!path==NULL erro msg:%d\n ", ERRO_MSG);
        return ERRO_MSG;
    }
    //定义文件指针(防止野指针)
    FILE *pf=NULL;
    //以文本方式读取使用r;以二进制方式读取使用rb
    pf = fopen(path, "rb");
    if (pf==NULL)
    {
        ERRO_MSG = 2;
        printf("文件打开失败 !文件路径是 %s ,文件打开方式是rb pf==NULL erro msg:%d\n", path, ERRO_MSG);
        return ERRO_MSG;
    }
    //定义一个字符
    char ch;
    int index = 1;
    fread(&ch, 1, 1, pf);
    //fread(缓冲数组地址,数组元素大小1个字节,每次读取1个元素,文件指针)
    while (!feof(pf)){//没有读取到文件末尾就继续
        printf("%c====%d\n", ch,index);
        fread(&ch, 1, 1, pf);
        index++;
    }
    //关闭文件指针
    if (pf != NULL)
    {
        fclose(pf);
    }
    return ERRO_MSG;
}

void main(){
    char str[50] = "我自狂刀向天笑,去留肝胆两昆仑!\n世人皆醉我独醒";
    char strt2[11] = "1234567890";

    //定义文本文件指针
    FILE *pfw=NULL;
    //定义二进制文件指针
    FILE *pfb=NULL;
    int num = 0;
    //写一个文本文件
    char pathw[40] = "E:/Look/w.txt";
    char pathb[40] = "E:/Look/b.txt";
    //一:文本模式
    //打开文件
    //w--写文件,如果没有,系统会创建一个,但是r--读文件,如果没有,文件指针就是NULL
    pfw = fopen(pathw, "w");
    if (pfw==NULL)
    {
        //文件打开失败
        printf("文件打开失败\n");
        return;
    }
    //文件打开成功
    //将字符串写入txt中
    //fwrite(数组首地址,数组元素大小1个字节,一共有50个元素,文件指针)
    num = fwrite(str, 1, 50, pfw);
    if (num != 50)
    {
        printf("文件读写出现IO错误  erro msg:%d\n");
    }
    if (pfw != NULL)
    {
        fclose(pfw);
    }

    //二:二进制模式
    //打开文件
    pfb = fopen(pathb, "wb");//区别,这是使用wb
    if (pfb==NULL)
    {
        //文件打开失败
        printf("文件打开失败\n");
        return;
    }
    //文件打开成功
    //将字符串写入txt中
    num = fwrite(strt2, 1, 11, pfb);
    //关闭文件指针
    if (pfb != NULL)
    {
        fclose(pfb);
    }
    //fwrite(数组首地址,数组元素大小1个字节,一共有50个元素,文件指针)
    printf("\n打印出文件\n");
    readtxt(pathb);
    
    
    system("pause");
}

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值