C语言函数fscanf()(从流 stream 读取格式化输入)(如果成功,返回成功匹配和赋值的个数;否则返回EOF)(分隔符:space、Tab、Enter)
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)相关推荐
- c语言gets,getc,C++_C语言的getc()函数和gets()函数的使用对比,C语言getc()函数:从流中读取字 - phpStudy...
C语言的getc()函数和gets()函数的使用对比 C语言getc()函数:从流中读取字符头文件: #include 函数getc()用于从流中取字符,其原型如下: int getc(FILE *s ...
- C语言sscanf()函数(从字符串读取格式化输入,提取需要的信息)
需包含头文件:C 标准库 - <stdio.h> 文章目录 描述 声明 参数 返回值 实例 我在VS上测试(VS上要用sscanf_s) 示例1 示例2(提取时能默认以空格分割) 描述 C ...
- c语言函数 fprintf()(向文件写入格式化字符串)
需包含头文件<stdio.h> 文章目录 描述 声明 参数 返回值 实例 描述 C 库函数 int fprintf(FILE *stream, const char *format, -) ...
- C语言基础之4:字符串和格式化输入/输出
Tips1 函数:strlen() 关键字:const 字符串 如何创建.存储字符串 如何使用strlen()函数获取字符串的长度 用C预处理器指令#define和ANSIC的const修饰符创建符号 ...
- C语言学习(四)字符串和格式化输入/输出
程序清单4.1 talkback.c程序 // talkback.c -- 演示与用户交互 #include <stdio.h> #include <string.h> // ...
- C语言fgets()函数(以指定长度读取文件中的字符,并存入字符数组变量中)
C语言fgets()函数(以指定长度读取文件中的字符,并存入字符数组变量中) 需要引入C 标准库 - <stdio.h> 文章目录 描述 声明 参数 返回值 实例 测试(确实只能读n-1个 ...
- C语言函数操作大全----(超详细)
fopen(打开文件) 相关函数 open,fclose 表头文件 #include<stdio.h> 定义函数 FILE * fopen(const char * path,const ...
- C语言函数大全--f开头的函数(下)
C语言函数大全 本篇介绍C语言中f开头的函数(下) 21. floor,floorf,floorl 21.1 函数说明 函数声明 函数功能 double floor (double x); 获取小于或 ...
- C语言函数大全(上)-ABCDEFGHIKL
C语言函数大全,包含功能描述,函数声明,程序demo,本章为上部,首字母ABCDEFGHIKL的函数. 目录 A B C D E F G H I K L A 函数名: abort 功 能: 异常终止一 ...
最新文章
- android url webview,android - webview获取到当前页面的url
- Windows Phone 7用户界面原型截图汇总
- java web日期_java-web——第十一课 时间类
- OEL上使用yum install oracle-validated 简化主机配置工作
- 实时滚动图表绘制方法: LightningChart教程 + 源码下载
- FJOI2018二试游记
- springboot ftp 笔记
- DIV实现CSS 的placeholder效果
- opt eclipse jre bin java_在Eclipse中指定JDK
- swift 项目_谷歌为何要养苹果的亲儿子Swift?原来意在可微分编程
- 阿里银泰集团物业预付费系统项目的设计与应用
- IEC62304-2006解读
- java系统过载保护_浅谈过载保护
- python,别特么显示科学计数法了
- C#、winfrom打印pnl订单窗体
- linux cgroup、kubernetes limit
- 朴素贝叶斯文本分类java_朴素贝叶斯文本分类简单介绍
- PWM和PPM的区别
- 卸载Adobe Illustrator
- Android内存优化—Android的内存管理方式