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

Posted Dontla

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言函数fscanf()(从流 stream 读取格式化输入)相关的知识,希望对你有一定的参考价值。

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()

以上是关于C语言函数fscanf()(从流 stream 读取格式化输入)的主要内容,如果未能解决你的问题,请参考以下文章

C语言文件读取fscanf(),该怎么处理

C语言fscanf的用法是啥

请教fprintf函数的用法

C语言 fscanf 格式化读取文件中数据

C语言fscanf/fprintf函数(格式化读写文件)的用法(%[]和%n说明符)

c语言中fread函数怎么用