0
点赞
收藏
分享

微信扫一扫

C语言函数fscanf()(从流 stream 读取格式化输入)

承蒙不弃 2022-02-21 阅读 65
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()

举报

相关推荐

0 条评论