• 文件编程---库函数


    基于C函数库的文件编程是独立于具体的操作系统平台的,不管是在WindowsLinux还是其他的操作系统中,都是使用这些函数。使用库函数进行程序设计可提高程序可移植性 。

    在系统调用方式实现的文件访问中,使用文件描述符(一个整数)来指向一个文件。在库函数方式的文件访问中,使用FILE类型来表示一个打开的文件,这个类型中包含了管理文件流的信息。而指向该类型的指针FILE* 则被称之为文件指针 

    1.打开文件

    FILE *fopen(const char* path,const char* mode)

    所属头文件

    <stdio.h>

    返回值:

    Success:返回文件指针  fail:NULL

    参数说明:

    Path:指定打开的文件名字(含路径,缺省时为当前路径)
    Mode :文件打开模式
    常见打开模式:
    r,rb: 只读方式打开
    w,wb:只写方式打开,如果文件不存在,则创建该文件
    a,ab : 追加方式打开,如果文件不存在,则创建该文件。

    r+,r+b,rb+:读写方式打开
    w+,w+b,wh+:读写方式打开,如果文件不存在,则创建该文件
    a+,a+b,ab+:读和追加方式打开,如果文件不存在,则创建该文件

     注意:b表示二进制文件。用于区分二进制文件和文本文件,这一点在DOS、windows系统中时有区分的,但在linux不区分二进制文件和文本文件。

    2.读文件

    Size_t fread(void *ptr,size_t size,size_t nmemb,FILE* steam)

    所属头文件:

    <stdio.h>

    返回值:

    Success:返回成功读取到的数据量
    Fail:0

    参数说明:

    Ptr:指向读取出来后的数据保存的位置
    Size:读取数据时每块所包含的数据的个数
    Nmemb:读取的数据块数  (总数据:size * nmemb)
    Stream:指向要读取的文件

    3.写文件

    Size_t fwrite(const void *ptr,size_t size,size_t nmemb,FILE* stream)
    从缓存区ptr所指的数组中把nmemb个字段写到stream指向的文件中,每个字段长为size个字节,

    所属头文件:

    <stdio.h>

    返回值

    Success:返回成功写入的数据量  fail:0

    参数说明:

    Ptr:存放要写入文件的数据
    Size:每块数据的大小
    Nmemb:数据的块数
    Stream:要写入数据的文件的指针

    4.读字符

    int fgetc(FILE * stream)   //从指定的文件中读一个字符。

    5.关闭文件

    Int fclose(FILE * fp)   //fp:待关闭的文件指针

    所属头文件

    <stdio.h>

    返回值

    Success:0   fial:EOF

    6.写字符:

    int fputc(int c,FILE *stream)  //巷指定文件中写入一个字符

    补充:

    getchar();
    它是一个输入流的函数,从标准输入里读取下一个字符,也就是把输入的字符以队列的形式放入缓冲区,直到用户按回车为止。
    头文件:<stdio.h>
    
    putchar();
    作用是向终端输出一个字符,参数必须是一个字符,可以是介于0~127之间的一个十进制整型数。这个函数正好配合getchar()函数。

    7.格式化读:

    fscanf(FILE* stream,char *format[,argument...])
    从一个流中进行格式化输入

    8.格式化写

    int fprintf(FILE* stream,char *format[,argument,....])
    格式化输出到一个流中

    9.定位

    Int fseek(FILE *stream,long offset,int whence)

    所属头文件

    <stdio.h>

    返回值:

    Success: 0  Fail: -1

    参数说明

    Stream:需要重新定位的文件
    Offset:移动多少个偏移地址
    Whence:移动的初始位置
    SEEK_SET:开始偏移的起始位置为文件头
    SEEK_CUR:开始偏移的起始位置为目前的位置
    SEEK_END:开始偏移的起始位置为文件尾

    10.路径获取  //c库函数提供了getcwd

    char* getcwd(char *buffer,size_t size)

    我们提供一个size大小的buffer,getcwd会把当前的路径名copy到buffer中,如果buffer太小,函数会返回-1.

    11.创建目录

    int mkdir(char *dir,int mode)

  • 相关阅读:
    VINS_Fusion IMU数据处理过程
    SLIC聚类算法
    视觉SLAM十四讲(第二版)第五讲笔记
    视觉SLAM十四讲(第二版)第四讲笔记
    视觉SLAM十四讲(第二版)第三章笔记
    g++命令总结
    第二次冲刺第一天
    11月21日
    11月20日
    11月19日
  • 原文地址:https://www.cnblogs.com/Caden-liu8888/p/7710570.html
Copyright © 2020-2023  润新知