文件编程---库函数

Posted 白宫飘红旗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件编程---库函数相关的知识,希望对你有一定的参考价值。

基于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)

 

以上是关于文件编程---库函数的主要内容,如果未能解决你的问题,请参考以下文章

C++编程基础: 14. 文件的读写

Xamarin Android 片段库

web代码片段

静态库和动态库编程技术

html 将以编程方式附加外部脚本文件的javascript代码片段,并按顺序排列。用于响应式网站,其中ma

VSCode自定义代码片段——声明函数