计导大作业——笔记 & 作业

文件part_1__作业3

2019-04-07  本文已影响2人  cjs2019

我还是有win本可以用的…… /斜眼笑

开始肝文件……

暂时先写一会儿笔记,之后再放练习题的……
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <time.h>

void print_open_file_failure(){
    printf("File could not be opened\n");
}
void func1(){
    //文件的打开和关闭;

    // PS:
    // r 打开,可以读取。
    // w 打开,可以写入(但会删除之前的内容),若不存在,则创建之。
    // a 打开,可以写入(追加),若不存在,则创建之。
    // r+打开,可以进行更新(即读和写)。
    // w+打开,可以进行更新(即读和写,但是会先删除文件原内容),若不存在,则创建之。
    // a+打开,可以进行更新(即读和写)(追加),若不存在,则创建之。
    // rb/wb/ab/r+b/w+b/a+b 对二进制文件的操作

    FILE *fptr=NULL;
    char filename[200];
    scanf("%s",filename);
    fptr=fopen(filename,"w");
    //这个其实还是不太懂……
    //打开文件==创建NULL类型记录,分配缓存区,拷贝FCB到内存的打开文件表,将缓冲区首地址、FCB在打开文件表的下标写入FILE记录(若失败返回NULL)
    fflush(fptr);//清理一个文件的缓存区
    int x;
    x=fclose(fptr);
    printf("%d\n",x);
    //关闭文件指针指向的文件,将所有未回写缓冲数据写入文件,断开文件和流的关联,释放文件占用的资源。
    //如果正常关闭,返回0。否则返回EOF
}//文件的打开和关闭;
void func2(){
    //以"r","w"方式打开文件,文件指针指向文件头;
    //(即所谓"追加")以"a"方式打开文件,文件指针指向文件尾;
    FILE *fptr;
    char filename[200];//本人的文件名很长……
    scanf("%s",filename);
    fptr=fopen(filename,"a");
    if (fptr==NULL){
        print_open_file_failure();
    }
    else{
        int loc=0;
        printf("%p\n",fptr);
        rewind(fptr);//文件位置指针指向文件头;
        printf("%p\n",fptr);
        printf("%d\n",loc);
        loc=fseek(fptr,12,SEEK_SET);//修改文件位置指针指向任一字节处;
        printf("%p\n",fptr);
        printf("%d\n",loc);
        loc=(int)ftell(fptr);//返回文件当前位置;
        if (loc==-1L){
            printf("ftell() error\n");
        }
        else{
            printf("%p\n",fptr);
            printf("%d\n",loc);
        }
        fclose(fptr);
    }

}//位置指针与文件定位

int main(){
    //func1();//文件的打开和关闭;
    func2();//位置指针与文件定位


    return 0;
}
上一篇 下一篇

猜你喜欢

热点阅读