`fprintf` 和 `sprintf` 是 C 语言中用于格式化输出的函数,它们的用法和区别如下:
1. `fprintf` 函数:
(1)用法:int fprintf(FILE* stream, const char* format, ...)。
(2)功能:将格式化的数据输出到指定的文件流 `stream` 中。
(3)参数:
- `stream`:指向文件流的指针,可以是标准输出流 `stdout`、标准错误流 `stderr`,或者是通过 `fopen` 函数打开的文件流。
- `format`: 格式化字符串,用于指定输出的格式。
- `...`: 可变参数,根据 `format` 字符串中的格式说明符进行格式化。
- 返回值: 成功返回写入的字符数,出错返回负值。
2. `sprintf` 函数:
(1) 用法:int sprintf(char* str, const char* format, ...)。
(2) 功能:将格式化的数据写入到字符串 `str` 中。
(3) 参数:
- `str`: 目标字符串的指针,用于存储格式化后的数据。
- `format`:格式化字符串,用于指定输出的格式。
- `...`: 可变参数,根据 `format` 字符串中的格式说明符进行格式化。
- 返回值: 成功返回写入的字符数,出错返回负值。
区别:
(1)输出目标不同:`fprintf` 将格式化数据输出到文件流,而 `sprintf` 将格式化数据写入到字符串中。
(2)参数类型不同:`fprintf` 的第一个参数是文件流指针,而 `sprintf` 的第一个参数是目标字符串的指针。
(3)使用注意事项:`sprintf` 需要确保目标字符串 `str` 有足够的空间来存储格式化后的数据,以避免缓冲区溢出。