一、fscanf函数
(1)fscanf函数介绍
fscanf()
函数是C语言中用于从文件中按照指定格式读取数据的函数,工作方式与scanf()
类似,但fscanf从文件中读取数据,而scanf从标准输入中读取数据。
(2)fscanf函数原型和参数介绍
int fscanf(FILE *stream, const char *format, ...);
参数介绍:
stream
:要读取数据的文件指针。format
:格式字符串,指定了要读取的数据类型和格式。...
:可变参数列表,与format
中的格式控制符一一对应,用于接收读取到的数据。- 返回值:
当成功读取并赋值的参数个数与格式字符串中的转换说明符一致时,返回成功读取并赋值的参数个数;如果没有成功匹配或读取任何数据,则返回0;如果发生读取错误(如遇到无效的输入),则返回
EOF
(-1);如果已到达文件末尾,则返回EOF
(-1)。可以用if语句进行判断是否全部读取和是否发生异常情况。
二、fprintf函数
(1)fprintf函数介绍
fprintf()
函数是C语言中用于将数据按照指定格式写入文件的函数。使用fprintf()
函数可以向文件中写入各种类型的数据,并且可以根据需要进行格式化输出。
(2)fprintf函数原型和参数介绍
int fprintf(FILE *stream, const char *format, ...);
参数介绍:
stream
:要写入数据的文件指针。format
:格式字符串,指定要写入的数据类型和格式。...
:可变参数列表,与format
中的格式控制符一一对应,用于提供要写入的数据。返回值:
返回成功写入的字符数,即成功执行写入操作的字符总数;如果发生写入错误,则返回一个负值。
三、fread函数
(1)fread函数介绍
fread()
函数是C语言中用于从文件中以二进制形式读取数据的函数。fread()
函数的作用是从文件中读取指定数量的数据项,并将其存储到提供的缓冲区中。
(2)fread函数原型和参数介绍
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
参数介绍:
ptr
:指向要存储读取数据的缓冲区首地址的指针。size
:每个数据项的字节数,即写入对象的大小。- nmemb:要读取的数据项的数量,即写入对象的个数。
stream
:要读取数据的文件指针。- 返回值:
返回值size_t是无符号整形,如果成功读取了全部的nmemb个数据项,则返回值等于nmemb
;
如果在读取过程中遇到文件结束或无法读取足够的数据项,则返回值可能小于nmemb;
如果发生读取错误(如文件读取失败、IO错误等),则返回值为0。
注意:fread()
函数的返回值并不一定表示已经成功读取了所有期望的数据项数量。因此,在使用fread()
函数后,应该根据返回值判断是否出现了错误或者读取了预期的数据项数量,以进行适当的处理和异常处理。例如,可以根据fread()
的返回值来检查是否成功读取了预期的数据项数量,并视情况进行进一步操作。
四、fwrite函数
(1)fwrite函数介绍
fwrite()
函数是C语言中用于以二进制形式将数据写入文件的函数。作用是将给定数量的数据项从缓冲区写入到文件中。
(2)fwrite函数原型和参数介绍
size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream);
参数介绍:
ptr
:指向要写入的数据缓冲区的指针。size
:每个数据项的字节数。- nmemb:要写入的数据项的数量。
stream
:要写入数据的文件指针。- 返回值:返回一个
size_t
类型的值,表示成功写入的数据项数量。如果成功写入了全部的 nmemb个数据项,则返回值等于nmemb
;
如果在写入过程中发生了错误(如磁盘空间不足、IO 错误等),则返回值可能小于nmemb;
如果返回值小于nmemb,可以通过检查ferror()
或feof()
函数来确定是否是因为发生了错误或已到达文件末尾。
注意:fwrite()
函数的返回值并不一定表示已经成功写入了所有期望的数据项数量。因此,在使用 fwrite()
函数后,应该根据返回值判断是否出现了错误或者写入了预期的数据项数量,以进行适当的处理和异常处理。例如,可以根据 fwrite()
的返回值来检查是否成功写入了预期的数据项数量,并视情况进行进一步操作。