C语言实现简单的文件读写

前言:

这是一个用C语言进行文件读取文件的一个控制台程序。

读取的文件为一个txt文件,里面存放一个5*5的矩阵,对文件的处理为矩阵乘2。

首先要想更好的理解这个代码必须了解计算机处理文件的具体过程:

文件读取的数据流。

本文参考谭浩强老师的至尊宝典---------《C语言程序设计》

开整:

1.定义文件指针;

FILE*in,*out;//定义文件指针

文件指针的本质是C语言声明好的一个结构体,程序中不用自己定义。

typedef struct {
    short level;           //缓冲区,“满”或“空”的程度
    unsigned flags;        //文件状态的标志
    char fd;               //文件描述符
    unsigned char hold;    //如无缓冲区不读取字符
    short basize;          //缓冲区的大小
    unsigned char *buffer; //数据缓冲区的位置
    unsigned char *curp;   //指针当前的指向
    unsigned istemp;       //临时文件,指示器
    short token;           //用于有效性的检验
} FILE;

2.然后用fopen函数将文件读入内存;

其中 r 为只读操作。

in=fopen(ADDRESS,"r");
    if(in==NULL)//打开输入文件
    {
        printf("无法打开文件!\n");
        exit(0);
    }

其中ADDRESS为文件的一个路径

printf("输入打开文件位置:\n");
gets(ADDRESS);

3.读取到数组中并显示数组

    while(!feof(in))//输入文件的结束标志
    {
        for(i=0;i<N;i++)//读取到数组中
            {
                for(j=0;j<N;j++)
                {
                    fscanf(in,"%d",&a[i][j]);//每次读一个数,fscanf遇空格或换行结束,存在问题:原文件中空格未输出
                }
                //fscanf(in,"\n");//同scanf换行
            }
    }
    fclose(in);//关闭文件
    for(i=0;i<N;i++)
    {
        for(j=0;j<N;j++)
        {
            printf("%.1d",a[i][j]);
        }
        printf("\n");
    }

4.读入到另一个文件中

fopen(PUTFILE,"w");
w为一个可写操作
    printf("输入复制文件路径:\n");
    gets(PUTFILE);
    out=fopen(PUTFILE,"w");
    for(i=0;i<N;i++)//将数组写入copy.txt
    {
        for(j=0;j<N;j++)
        {
            fprintf(out,"%d ",a[i][j]);
        }
        fprintf(out,"\n");
    }
    printf("COPY OK!");
    fclose(out);

最后:

良心代码绝不留坑!复制粘贴既有效!复制粘贴既有效!(。・∀・)ノ

如果复制粘贴无效,你可以。。。。。。。。。。。。。。。顺着网线来砍我啊!





猜你喜欢

转载自blog.csdn.net/define_lin/article/details/80279803