C 标准库 - <stdio.h>

文章目录

  • 描述
  • 声明
  • 参数
  • 返回值
  • 实例1
  • 实例2
  • 实例3
    • 注意(分隔符:space、Tab、Enter)
    • 换行格式化输入示例(暂时只能弄英文字符,中文字符弄不了)

描述

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);  //ret为4printf("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()

实例3

注意(分隔符:space、Tab、Enter)

fscanf()scanf()一样,都是以白字符(<space><Tab><Enter>)作为分隔符的,就是说,当读到白字符时,就结束当前数据的读入,并将下一个数据赋给下一个变量。白字符不会当作数据的一部分赋给变量,而会被舍弃,但最后一个白字符会被保留在源数据流中。

换行格式化输入示例(暂时只能弄英文字符,中文字符弄不了)

#pragma warning(disable : 4996)
#include <stdio.h>int main()
{FILE* fp;int num = 0; char parser1[1024] = { 0 };char parser2[1024] = { 0 };fp = fopen("file.txt", "w+"); //创建一个用于读写的空文件/*fputs("这是C语言。\n", fp);fputs("这是一种系统程序设计语言。\n", fp);fputs("今天是2022年2月24号!\n", fp);*/fputs("This is C language.\n", fp);fputs("This is a system design language.\n", fp);fputs("Today is 20220224.\n", fp);rewind(fp); //回到文件fp开头int ret = 0;ret = fscanf(fp, "This is %s language.\n", &parser1);ret = fscanf(fp, "This is a %s design language.\n", &parser2);ret = fscanf(fp, "Today is %d.\n", &num);/*  int ret = 0;ret = fscanf(fp, "这是%s言。\n", &parser1);ret = fscanf(fp, "这是%s语言。\n", &parser2);ret = fscanf(fp, "今天是%d年2月24号!", &num);*/printf("Read String1 |%s|\n", parser1);  //Read String1 |C|printf("Read String3 |%s|\n", parser2); //Read String3 |system|printf("Read Integer |%d|\n", num);    //Read Integer |20220224|fclose(fp);return(0);
}

VS编译运行结果:

Read String1 |C|
Read String3 |system|
Read Integer |20220224|F:\Arnold_Test\20211223_jsonTest\jsonTest\Debug\jsonTest.exe (进程 50408)已退出,代码为 0。
按任意键关闭此窗口. . .

C语言函数fscanf()(从流 stream 读取格式化输入)(如果成功,返回成功匹配和赋值的个数;否则返回EOF)(分隔符:space、Tab、Enter)相关推荐

  1. c语言gets,getc,C++_C语言的getc()函数和gets()函数的使用对比,C语言getc()函数:从流中读取字 - phpStudy...

    C语言的getc()函数和gets()函数的使用对比 C语言getc()函数:从流中读取字符头文件: #include 函数getc()用于从流中取字符,其原型如下: int getc(FILE *s ...

  2. C语言sscanf()函数(从字符串读取格式化输入,提取需要的信息)

    需包含头文件:C 标准库 - <stdio.h> 文章目录 描述 声明 参数 返回值 实例 我在VS上测试(VS上要用sscanf_s) 示例1 示例2(提取时能默认以空格分割) 描述 C ...

  3. c语言函数 fprintf()(向文件写入格式化字符串)

    需包含头文件<stdio.h> 文章目录 描述 声明 参数 返回值 实例 描述 C 库函数 int fprintf(FILE *stream, const char *format, -) ...

  4. C语言基础之4:字符串和格式化输入/输出

    Tips1 函数:strlen() 关键字:const 字符串 如何创建.存储字符串 如何使用strlen()函数获取字符串的长度 用C预处理器指令#define和ANSIC的const修饰符创建符号 ...

  5. C语言学习(四)字符串和格式化输入/输出

    程序清单4.1 talkback.c程序 // talkback.c -- 演示与用户交互 #include <stdio.h> #include <string.h> // ...

  6. C语言fgets()函数(以指定长度读取文件中的字符,并存入字符数组变量中)

    C语言fgets()函数(以指定长度读取文件中的字符,并存入字符数组变量中) 需要引入C 标准库 - <stdio.h> 文章目录 描述 声明 参数 返回值 实例 测试(确实只能读n-1个 ...

  7. C语言函数操作大全----(超详细)

    fopen(打开文件) 相关函数 open,fclose 表头文件 #include<stdio.h> 定义函数 FILE * fopen(const char * path,const ...

  8. C语言函数大全--f开头的函数(下)

    C语言函数大全 本篇介绍C语言中f开头的函数(下) 21. floor,floorf,floorl 21.1 函数说明 函数声明 函数功能 double floor (double x); 获取小于或 ...

  9. C语言函数大全(上)-ABCDEFGHIKL

    C语言函数大全,包含功能描述,函数声明,程序demo,本章为上部,首字母ABCDEFGHIKL的函数. 目录 A B C D E F G H I K L A 函数名: abort 功 能: 异常终止一 ...

最新文章

  1. android url webview,android - webview获取到当前页面的url
  2. Windows Phone 7用户界面原型截图汇总
  3. java web日期_java-web——第十一课 时间类
  4. OEL上使用yum install oracle-validated 简化主机配置工作
  5. 实时滚动图表绘制方法: LightningChart教程 + 源码下载
  6. FJOI2018二试游记
  7. springboot ftp 笔记
  8. DIV实现CSS 的placeholder效果
  9. opt eclipse jre bin java_在Eclipse中指定JDK
  10. swift 项目_谷歌为何要养苹果的亲儿子Swift?原来意在可微分编程
  11. 阿里银泰集团物业预付费系统项目的设计与应用
  12. IEC62304-2006解读
  13. java系统过载保护_浅谈过载保护
  14. python,别特么显示科学计数法了
  15. C#、winfrom打印pnl订单窗体
  16. linux cgroup、kubernetes limit
  17. 朴素贝叶斯文本分类java_朴素贝叶斯文本分类简单介绍
  18. PWM和PPM的区别
  19. 卸载Adobe Illustrator
  20. Android内存优化—Android的内存管理方式

热门文章

  1. 【转载】SAP集成会计凭证生成的原理
  2. 【转】一文读懂数据分析平台的架构与设计
  3. SAP R/3 中会计凭证和物料凭证的对应关系
  4. 如何查询MySql日志
  5. SAP调用外部web service
  6. [abap] 通过动态参数获取字段数据
  7. 《他其实没那么喜欢你》经典台词(4)
  8. 此工作簿包含到其他数据源的链接
  9. 通过LDB_PROCESS函数使用逻辑数据库
  10. 5分钟教你制作狂拽酷炫的投资交易图