• 大四中软实习笔记201303011文件


    1 文件的概念
    printf    打印=输出                内存------------>显示器=stdout-------文件(文件指针)
    scanf    录入=输入                内存<------------   键盘=stdin-------文件(文件指针)

    fflush

    1.1 将内存中的数据 输出到 磁盘文件
    代码:
    int main()
    {
        int a=10;
        FILE *fp=fopen("a.txt","w");
        //printf("%d",a);
        fprintf(fp,"%d\n",a);    //fp若换位stdout则,输出到显示器文件
        return 0;
    }

    1.2 将磁盘文件中的内容,输入到内存中
    int main()
    {
        int a;
        FILE *fp=fopen("a.txt","r");
        //scanf("%d",&a);    //a是输出参数。参数的地址传递方式

        //fscanf(stdin,"%d",&a);

        fscanf(fp,"%d",&a);
        printf("a=%d\n",a);


        return 0;
    }


    1.3 其它问题
    fopen()
    需要查看返回值,如打开1个不存在的a.txt时,会返回null,而不是1个可用的FILE *类型的值


    fclose(fp);
    参数的区别:
        w---写,会新建,会将已有文件清空;不能读
        r---读,但不能写。必须已有a.txt文件名,否则返回错误。
        w+   只是额外增加功能
        r+   同样
       

    文件fopen后,游标默认在第1个字符上(位置从0开始)。(空文件除外)-------空文件时,游标在0位置(可以利用来判断是否为空文件)

    ftell------查询游标的当前位置(重要前提:使用该函数时,前面必须要移动1次游标。如前面加fseek(fp,0,SEEK_END);  如果ftell返回0,则说明文件内容为空)

    fseek------让游标发生移动(有3个起点)

    移动游标的方法:
    fseek
    fscanf(fp,"%d %s %c %s %s ",&intdat,str1,&char1,str2,str3);------前提是a.txt中,各个数据间也有空格
    fprintf--------也要用相同的间隔符来 输出的a.txt
    rewind(fp)------fseek(fp,0,SEEK_SET)移动文件的第1个字符上

    fflush(stdin)-----当标准输入设备中有字符时,将它们清楚掉(如有'\n')

    怎样保证数据已被写到了a.txt中?
    fclose(fp);

    fp不要重复打开

    feof(fp)------读文件时,用于判断是否读到文件末尾了。如果到末尾了,返回真

  • 相关阅读:
    动态代理
    构建一个REST风格的Web服务(Building a RESTful Web Service)
    使用Spring Boot构建应用程序(Building an Application with Spring Boot)
    SpringBoot笔记 三
    SpringBoot笔记 一
    redis的linux安装
    mysql的windows安装
    linux下Redis安装
    上网列表
    shell每日发邮件
  • 原文地址:https://www.cnblogs.com/blueswitkey/p/2957947.html
Copyright © 2020-2023  润新知