文章目录
前言
这一章主要介绍文件顺序读写的各种函数和文件的随机读写和文件缓存区。制作不易求点个关注。
一、文件的顺序读写
顺序读写函数介绍:
| 函数名 | 功能 | 适用对象 |
|---|---|---|
| fgetc | 字符输入函数 | 所有输入流 |
| fputc | 字符输出函数 | 所有输出流 |
| fgets | 文本行输入函数 | 所有输入流 |
| fputs | 文本行输出函数 | 所有输出流 |
| fscanf | 格式化输入函数 | 所有输入流 |
| fprintf | 格式化输出函数 | 所有输出流 |
| fread | 二进制输入 | 文件输入流 |
| fwrite | 二进制输出 | 文件输出流 |
1.fgetc和fputc
fgetc
字符输入函数(文件输入到程序)
语法形式:
int fgetc(FILE * stream);
功能:从stream指向的流中读取一个字符,光标换到下一个
返回值:已处于文件末尾时,返回EOF
fputc
字符输出函数(程序输出文件)
语法形式:
int fputc(int character ,FILE *atream);
character:写入的字符
功能:将指定的字符写入到指定的输出流
返回值:成功返回写入的字符(int形式),失败返回EOF,错误指示器被设置(feffor);
2.feof和ferror
1.feof
feof是检测到指针指向的流是否遇到文件末尾,如果读取到文件末尾这时会在流上设置文件结束指示符。
如果有则返回非0的值,没有则返回0。
2.ferror
发生了读写错误,文件读取就会错误。
会设置一个错误指示符,如果ferror检测到会返回一个非0的值,没有则返回0。
3.fgets和fputs
1.fgets
语法形式:
char * fgets(char * str, int num , FILE * stream);
stream:从这里读取字符串,到/n或者文件末尾或指定数结束。
num:最大读取字符数(包括\0),实际读取num-1。
str:用于储存读到的字符串。
2.fputs
语法形式:
int fputs(const char *str,FILE * stream);
将参数str指向的字符串写入到参数stream中(不含\0);
str:指向了要写入的字符串 ,成功时返回非负整数 ,失败时返回EOF,可以使用ferror()检查错误原因。
4.fscanf和fprintf
1.fscanf
语法形式:
int fscanf(FILE * stream,const char * format ……);
与scanf相比较多了一个FILE * stream,表示要读取的文件。
返回值:成功读取几项数据返回几。
发生错误,返回EOF,设置错误指示符。
读到末尾,返回EOF,文件结束指示符。
2.fprintf
语法形式:
int fprintf(FILE * stream,const char * format ……);
与printf相比多一个FILE * stream,表示要读取的文件流。
返回值:成功返回写入的字符总数。失败,先设置错误流指示器,再返回负值。
5.fwrite和fread
1.fread
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
ptr:指向内存块的指针,用于存储读取的数据。
size:每个数据项的字节大小。
nmemb:要读取的数据项数量。
stream:指向 FILE 对象的指针,通常由 fopen 打开。
将数据块从stream文件中读取,存储到ptr中。
返回值:
成功时返回实际读取的数据项数量
若返回值与 nmemb 不同,可能到达文件末尾或发生错误,需结合 feof 或 ferror 检查。
2.fwrite
语法形式:
size_t fwrite(void *ptr, size_t size, size_t nmemb, FILE *stream);
ptr:指向内存块的指针,用于写入的数据块。
size:每个数据项的字节大小。
nmemb:要读取的数据项数量。
stream:指向 FILE 对象的指针,通常由 fopen 打开。
==函数用于将数据块写入到stream指向的文件流中,以二进制的形式写入。 ==
返回值:
函数返回成功写入的数据项数量(nmemb)。若返回值小于nmemb,可能表示写入过程中发生错误或到达文件末尾。
6.sscanf和sprintf
1.sscanf
语法形式:
int sscanf(const char * str,const char * format ……);
str:要解析的源字符串
== 功能:从字符串中读取格式化数据==
2.sprintf
语法形式:
int sprintf(const char * str,const char * format ……);
str:指向字符数组的指针,用于储存生成的字符串。
将格式化的数据写入到字符数组
二、文件的随机读写
1.fssek
语法形式:
int fseek ( FILE * stream, long int offset, int origin );
offset:偏移数,向右为正,向左为负。
origin :
SEEK_SET:文件开始位置
SEEK_CUR:文件指示器当前位置
SEEK_END:文件末尾
根据文件指针的位置和偏移量来定位文件指针(文件光标的内容)。
2.ftell和rewind
1.ftell
语法形式:
long int ftell ( FILE * stream);
返回文件指针相对于起始位置的偏移量。
rewind
语法形式:
void rewind ( FILE * stream );
让文件指针回到起始位置。
三、文件缓冲区
ANSI是采用“缓冲文件系统”处理数据文件的。所谓的缓冲文件系统就是系统自动地在内存中为程序的每一个正在使用的文件开辟一块“文件缓冲区”

据输入/输出缓冲区装满才发送对应文件/内存
fflush
语法形式:
int fflush(FILE * stre);
stre:指向的文件流的指针。
功能: 可以强制刷新缓冲区。
返回值:
成功返回0,失败返回EOF。
输入:由具体实现。
输出:未写入的数据立即写入文件。
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
1766

被折叠的 条评论
为什么被折叠?



