读取字符串
【f_gets】由【f_read】封装而来,可从文件中读取一个字符串。当读取到’\n’、文件结束或缓冲区被填充Size - 1个字符时,读操作结束。若文件读取成功,则返回读取到的字符串,否则返回空字符串,其定义如下
char* f_gets (
char* Str, /* 读缓冲区 */
int Size, /* 读缓冲区大小 */
FIL* FileObject /* 文件对象 */
);
其中
- Str 存储读取字符串的读缓冲区指针。
- Size 读缓冲区大小。
- FileObject 打开的文件对象结构指针。
当 _USE_STRFUNC 为1或者2时,f_gets可用,且当_USE_STRFUNC==2时,文件中包含的 ‘\r’ 则被去除。
写入
【f_putc】是f_write的一个封装函数,可向文件中写入一个字符。 当字符被成功地写入后,函数返回该字符。由于磁盘满或任何错误而导致函数失败,将返回 EOF。
int f_putc (
int Chr, /* 字符 */
FIL* FileObject /* 文件对象 */
);
其中,Chr即为待写入字符。
【f_puts】是由f_putc封装而来,可向文件中写入一个字符串。 函数成功后,将返回写入的字符数。由于磁盘满或任何错误而导致函数失败,将返回EOF。
int f_puts (
const char* Str, /* 字符串指针 */
FIL* FileObject /* 文件对象指针 */
);
其中Str即为字符串指针,要求以’\0’结尾,且’\0’ 字符不会被写入。
f_putc和f_puts的可用条件均为(_FS_READONLY == 0)&&(_USE_STRFUNC == 1 || _USE_STRFUNC == 2)
,且当_USE_STRFUNC == 2时,字符 ‘\n’ 被转换为 “\r\n” 写入文件中。
f_printf
【f_printf】可向文件中写入一个格式化字符串。其函数返回值与f_puts相同。
int f_printf (
FIL* FileObject, /* 文件对象指针 */
const char* Foramt, /* 格式化字符串指针 */
...
);
其中,Format是以’\0’ 结尾的格式化字符串指针,...
为可选参数。
其中,格式化字符串的方法与printf相似,例如下面代码将输出The number is 42。
int num = 42;
f_printf(file, "The number is %d\n", num);
下面是一些常用的格式符
%d %i | 十进制整数 | %x %X | 十六进制整数小写 大写 |
%u | 无符号十进制整数 | %o | 八进制整数 |
%f | 浮点数 | %p | 指针地址 |
%e %E | 科学计数法小写 大写 | %g %G | 自动选择%f或%e(小写) (大写) |
%s | 字符串 | %c | 字符 |
此外,格式化说明符可以带有修饰符,用于控制输出的宽度、精度等。示例如下,x表示空格
42 | ||
---|---|---|
%5d | 最小宽度为5的整数,不足时在前面补充空格 | xxx42 |
%05d | 最小宽度为5的整数,不足时在前面补充0 | 00042 |
%-5d | 最小宽度为5的整数,但左对齐 | 42xxx |
%.2f | 小数位数为2的浮点数 | 42.00 |