#include <stdio.h>
FILE *fopen(const char *pathname, const char *mode); // 打开 失败返回NULL
int fclose(FILE *stream); // 关闭 成功返回0#include <stdio.h>
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); //读
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream); //写
ptr: 要向文件中读取/写入数据的存储区首地址(比如int a[ ]中a的地址)
size: 要读取/写入元素占据的字节数
nmemb: 要读取/写入的元素个数
stream: 要读取/写入文件的指针
返回
返回实际读/写元素个数
#include <stdio.h>
long ftell(FILE *stream); // 返回当前位置(距离文件开头的字节偏移)
void rewind(FILE *stream); // 位置指针移动到文件开头,等价于 fseek(stream, 0, SEEK_SET);
int fseek(FILE *stream, long offset, int whence); // 任意指定位置指针读写位置offset 偏移量(字节)
fseek 中 whence 参数:
SEEK_SET 0 位置指针移动到文件头
SEEK_CUR 1 位置指针移动到当前位置
SEEK_END 2 位置指针移动到文件末尾
成功返回 0,失败返回非 0
三个标准文件FILE*
stderr没有缓冲区
fprintf (fp , "%d" , a); //输出屏幕内容到文件指针的文件中
fscanf (fp , "%d" , &a); //获取文件内容到存储区中
char *fgets(char *s, int size, FILE *stream);
功能:从 stream 读取最多 size-1 个字符,或遇到换行符或 EOF 停止。
如果读到换行符,换行符会被包含在缓冲区内,随后写入终止符 '\0'。
参数:
char *s
指向目标缓冲区的指针,fgets 会把读取到的字符写入该缓冲区并以 '\0' 结尾。
必须指向至少 size 字节的有效内存(不能为 NULL)。
int size
指定缓冲区总大小(以字节为单位)。fgets 最多读取 size-1 个字符,最后保留 1 字节存放终止符 '\0'。
必须大于 0。若为 1,则只能写入 '\0'(不读取字符)。
FILE *stream
指向输入流的文件指针(例如 stdin、由 fopen 打开的文件、或其他 FILE*)。
该流应可读取;遇到 EOF 或发生错误时 fgets 返回 NULL。
返回值:成功时返回 s,发生错误或在未读入字符时遇到 EOF 返回 NULL。
注意:size 参数必须至少为 1;实际可存储字符数为 size-1(为 '\0' 留位置)。