C 标准库 - <stdio.h>
文章目录
描述
C 库函数 int fscanf(FILE *stream, const char *format, …) 从流 stream 读取格式化输入。
声明
下面是 fscanf() 函数的声明。
int fscanf(FILE *stream, const char *format, ...)
参数
- stream – 这是指向 FILE 对象的指针,该 FILE 对象标识了流。
- format – 这是 C 字符串,包含了以下各项中的一个或多个:空格字符、非空格字符 和 format 说明符。
format 说明符形式为[=%[*][width][modifiers]type=]
,具体讲解如下:
fscanf 类型说明符:
- 附加参数 – 根据不同的 format 字符串,函数可能需要一系列的附加参数,每个参数包含了一个要被插入的值,替换了 format 参数中指定的每个 % 标签。参数的个数应与 % 标签的个数相同。
返回值
如果成功,该函数返回成功匹配和赋值的个数。如果到达文件末尾或发生读错误,则返回 EOF。
实例1
下面的实例演示了 fscanf() 函数的用法。
#pragma warning(disable : 4996)
#include <stdio.h>
#include <stdlib.h>
int main()
{
char str1[10], str2[10], str3[10];
int year;
FILE* fp;
fp = fopen("file.txt", "w+"); //创建一个可用于读写的空文件
fputs("We are in 2014", fp);
rewind(fp); //回到文件fp开头
int ret = fscanf(fp, "%s %s %s %d", str1, str2, str3, &year);
printf("Read String1 |%s|\n", str1);
printf("Read String2 |%s|\n", str2);
printf("Read String3 |%s|\n", str3);
printf("Read Integer |%d|\n", year);
fclose(fp);
return(0);
}
VS编译运行结果:
Read String1 |We|
Read String2 |are|
Read String3 |in|
Read Integer |2014|
实例2
#pragma warning(disable : 4996)
#include <stdio.h>
#include <stdlib.h>
int main()
{
char str1[10], str2[10];
int num;
FILE* fp;
fp = fopen("file.txt", "w+"); //创建一个可用于读写的空文件
fputs("Just 4 you", fp);
rewind(fp); //回到文件fp开头
int ret = fscanf(fp, "%s %d %s", str1, &num, str2);
printf("Read String1 |%s|\n", str1);
printf("Read Integer |%d|\n", num);
printf("Read String3 |%s|\n", str2);
fclose(fp);
return(0);
}
vs编译运行结果:
Read String1 |Just|
Read Integer |4|
Read String3 |you|
参考文章:C 库函数 - fscanf()