C语言中的fscanf()函数与vfscanf()函数使用

时间:2021-08-21 08:06:52

C语言fscanf()函数:输入函数(比较常用)
头文件:

?
1
#include <stdio.h>

定义函数:

?
1
int fscanf(FILE * stream, const char *format, ...);

函数说明:fscanf()会自参数stream 的文件流中读取字符串, 再根据参数format 字符串来转换并格式化数据。格式转换形式请参考scanf(). 转换后的结构存于对应的参数内。

返回值:成功则返回参数数目, 失败则返回-1, 错误原因存于errno 中。

范例

?
1
2
3
4
5
6
7
8
9
#include <stdio.h>
main()
{
  int i;
  unsigned int j;
  char s[5];
  fscanf(stdin, "%d %x %5[a-z] %*s %f", &i, &j, s, s);
  printf("%d %d %s \n", i, j, s);
}

执行:

?
1
2
10 0x1b aaaaaaaaa bbbbbbbbbb //从键盘输入
10 27 aaaaa

C语言vfscanf()函数:输入函数(先格式化字符串再输入)
头文件:

?
1
#include <stdio.h>

定义函数:

?
1
int vfscanf(FILE * stream, const char * format, va_list ap);

函数说明:vfscanf()会自参数stream 的文件流中读取字符串, 再根据参数format 字符串来转换并格式化数据。格式转换形式请参考scanf(). 转换后的结果存于对应的参数内. va_list 用法请参考附录C 或vprintf().

返回值:成功则返回参数数目, 失败则返回-1, 错误原因存于errno 中.