C语言读取文件函数笔记

fopen用法: fp = fopen(filename,"w")。

fopen_s用法 :fopen_s(&fp,filename,"w")。

在定义FILE * fp 之后,fopen的用法是: fp = fopen(filename,"w")。而对于fopen_s来说,还得定义另外一个变量errno_t err,然后err = fopen_s(&fp,filename,"w")。返回值的话,对于fopen来说,打开文件成功的话返回文件指针(赋值给fp),打开失败则返回NULL值;对于fopen_s来说,打开文件成功返回0,失败返回非0。


 void *memset(void *s, int ch, size_t n);
函数功能:将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。
memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法


int fseek(FILE *stream, long offset, int fromwhere)
函数功能:设置文件指针stream的位置
如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置,函数返回0。如果执行失败(比如offset取值大于等于2*1024*1024*1024,即long的正数范围2G),则不改变stream指向的位置,函数返回一个非0值。
fseek函数和lseek函数类似,但lseek返回的是一个off_t数值,而fseek返回的是一个整型。
重定位流(数据流/文件)上的文件内部位置指针
注意:文件指针指向文件/流。位置指针指向文件内部的字节位置,随着文件的读取会移动,文件指针如果不重新赋值将不会改变或指向别的文件。


long ftell(FILE *stream);
函数功能: 用于得到文件位置指针当前位置相对于文件首的偏移字节数。在随机方式存取文件时,由于文件位置频繁的前后移动,程序不容易确定文件的当前位置。调用函数ftell()就能非常容易地确定文件的当前位置。 利用函数 ftell() 也能方便地知道一个文件的长。如以下语句序列: fseek(fp, 0L,SEEK_END); len =ftell(fp); 首先将文件的当前位置移到文件的末尾,然后调用函数ftell()获得当前位置相对于文件首的位移,该位移值等于文件所含字节数




void rewind(FILE *stream)
函数功能:是将文件内部的指针重新指向一个流的开头



fgetc用法:int fgetc(FILE *stream);。
函数功能:从文件指针stream指向的文件中读取一个字符,读取一个字节后,光标位置后移一个字节。


fputc函数格式:int fputc (int c, FILE *fp)。
函数功能: 将字符ch写到文件指针fp所指向的文件的当前写指针的位置。


size_t fread(void *ptr, size_t size, size_t count, FILE *stream)
从给定流 stream 读取数据到 ptr 所指向的数组中。size要读的每个数据项的字节数,单位是字节,count要读count个数据项,每个数据项size个字节.


size_t fread(void *ptr, size_t size, size_t count, FILE *stream)
从给定流 stream 读取数据到 ptr 所指向的数组中。size要读的每个数据项的字节数,单位是字节,count要读count个数据项,每个数据项size个字节.


size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);
返回值:返回实际写入的数据块数目
(1)buffer:是一个指针,对fwrite来说,是要获取数据的地址;
(2)size:要写入内容的单字节数;
(3)count:要进行写入size字节的数据项的个数;
(4)stream:目标文件指针;
(5)返回实际写入的数据项个数。
示例:
#include <stdio.h>
struct mystruct
{
    int i;
    char cha;
};
 
int main(void)
{
    FILE *stream;
    struct mystruct s;
    if ((stream = fopen("TEST.txt", "wb")) == NULL) /* open file TEST.txt*/
    {
        fprintf(stderr, "Cannot open output file.\n");
        return 1;
    }
    s.i = 0;
    s.cha = 'A';
    fwrite(&s, sizeof(s), 1, stream); /* 写的struct文件*/
    fclose(stream); /*关闭文件*/
    return 0;
}


函数原型:int fclose( FILE *fp );
函数功能:是关闭一个流。注意:使用fclose()函数就可以把缓冲区内最后剩余的数据输出到内核缓冲区,并释放文件指针和有关的缓冲区。
返回值:如果流成功关闭,fclose 返回 0,否则返回EOF(-1)。(如果流为NULL,而且程序可以继续执行,fclose设定error number给EINVAL,并返回EOF。












  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值