scanf family API 高级用法
sscanf是一个很好用的函数,利用它可以从字符串中取出整数、浮点数和字符串等等。它的使用方法简单,特别对于整数和浮点数来说。但新手可能并不知道处理字符串时的一些高级用法,这里做个简要说明吧。
1. 常见用法
以下是引用片段:
char str[512] = {0};
sscanf( "123456 ", "%s ", str);
printf( "str=%s\n ", str);
2. 取指定长度的字符串
如在下例中,取最大长度为4字节的字符串。
以下是引用片段:
sscanf( "123456 ", "%4s ", str);
printf( "str=%s\n ", str);
3. 取到指定字符为止的字符串
如在下例中,取遇到空格为止字符串。
以下是引用片段:
sscanf( "123456 abcdedf ", "%[^ ] ", str);
printf( "str=%s\n ", str);
4. 取仅包含指定字符集的字符串
如在下例中,取仅包含1到9和小写字母的字符串。
以下是引用片段:
sscanf( "123456abcdedfBCDEF ", "%[1-9a-z] ", str);
printf( "str=%s\n ", str);
5. 取到指定字符集为止的字符串
如在下例中,取遇到大写字母为止的字符串。
以下是引用片段:
sscanf( "123456abcdedfBCDEF ", "%[^A-Z] ", str);
printf( "str=%s\n ", str);
6. 特殊格式
如何解释 fscanf(fd,"%*[^\n]")
"%[^\n]"表示读输入字符串,直到碰到字符‘\n’为止,其中^表示否的意思
7. 总结
Scanf(格式化字符串输入),相关函数 fscanf,snprintf,sscanf,格式详解!
#include <stdio.h>
int scanf(const char *format, ...);
函数说明 scanf()会将输入的数据根据参数format字符串来转换并格式化数据。Scanf()格式转换的一般形式如下
%[*][size][l][h]type
以中括号括起来的参数为选择性参数,而%与type则是必要的。
* 代表该对应的参数数据忽略不保存。
size 为允许参数输入的数据长度。
l 输入的数据数值以long int 或double型保存。
h 输入的数据数值以short int 型保存。
底下介绍type的几种形式
%d 输入的数据会被转成一有符号的十进制数字(int)。
%i 输入的数据会被转成一有符号的十进制数字,若输入数据以“0x”或“0X”开头代表转换十六进制数字,若以“0”开头则转换八进制数字,其他情况代表十进制。
%0 输入的数据会被转换成一无符号的八进制数字。
%u 输入的数据会被转换成一无符号的正整数。
%x 输入的数据为无符号的十六进制数字,转换后存于unsigned int型变量。
%X 同%x
%f 输入的数据为有符号的浮点型数,转换后存于float型变量。
%e 同%f
%E 同%f
%g 同%f
%s 输入数据为以空格字符为终止的字符串。
%c 输入数据为单一字符。
[] 读取数据但只允许括号内的字符。如[a-z]。
[^] 读取数据但不允许中括号的^符号后的字符出现,如[^0-9].
返回值 成功则返回参数数目,失败则返回-1,错误原因存于errno中。
scanf family API 高级用法相关推荐
- C语言 —— 你不得不知道的 scanf 的高级用法
如果你想让自己的输入更加炫酷.更加个性化.更加安全,那么还需要学习 scanf() 的高级用法,这才是大神和菜鸟的分水岭. 好了,言归正传,我们分三个方面讲解 scanf() 的高级用法. 1) 指定 ...
- Newtonsoft.Json高级用法
手机端应用讲究速度快,体验好.刚好手头上的一个项目服务端接口有性能问题,需要进行优化.在接口多次修改中,实体添加了很多字段用于中间计算或者存储,然后最终用Newtonsoft.Json进行序列化返回数 ...
- SAP UI5 应用开发教程之六十 - SAP UI5 地图控件的一些高级用法试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...
- Java生成随机数的几种高级用法
转载自 进阶 | Java生成随机数的几种高级用法! 言归正传,众所周知,随机数是任何一种编程语言最基本的特征之一.而生成随机数的基本方式也是相同的:产生一个0到1之间的随机数.看似简单,但有时我们也 ...
- sscanf的高级用法
sscanf的高级用法(总结) 2012-04-25 18:50:25 分类: C/C++ sscanf(recvbuf,"%*[^/]/%[^ ]s",buf_rev); ...
- Python爬虫的requests模块你真的学会了吗?来看看这些高级用法!
1. 文件上传 我们知道requests可以模拟提交一些数据.假如有的网站需要上传文件,我们也可以用它来实现,这非常简单,示例如下: 很多人学习python,不知道从何学起. 很多人学习python, ...
- 细说 ASP.NET Cache 及其高级用法
阅读目录 开始 Cache的基本用途 Cache的定义 Cache常见用法 Cache类的特点 缓存项的过期时间 缓存项的依赖关系 - 依赖其它缓存项 缓存项的依赖关系 - 文件依赖 缓存项的移除优先 ...
- sscanf和sprintf的高级用法
sscanf和sprintf是scanf和printf家族的一对成员,用于处理和分析字符串非常强大得两个函数 头文件 stdio.h 原型 int sscanf( const char *buffer ...
- [转]Newtonsoft.Json高级用法
本文转自:http://www.cnblogs.com/yanweidie/p/4605212.html 手机端应用讲究速度快,体验好.刚好手头上的一个项目服务端接口有性能问题,需要进行优化.在接口多 ...
最新文章
- python把英语句子成分字母_英语句子成分-谓语讲解 什么是谓语?(
- spring中的jdk动态代理(代码步骤)
- OpenCV兼容性测试的实例(附完整代码)
- 微信小程序引入WeUI
- 关于JSON CSRF的一些思考
- [译]GC专家系列4-Apache的MaxClients设置及其对Tomcat Full GC的影响
- 偶也要去上海Tech一把了
- 手机python3l运行_Python3 os.lchflags() 方法
- Windows Server 2016存储空间直连技术的探秘
- 最详细 Spring Boot 入门(-)
- gbase里的分布表与复制表
- 14.Vue cli脚手架安装
- 解决前端做excel下载的文件打不开
- one 主格 复数 宾格_英语主格宾格形容词性物主代词及名词性物主代词练习题.doc...
- 2018计算机通信网络,2018年1-12月我国计算机、通信和其他电子设备制造业企业数量共计16656个...
- Linux 进程内存布局(一)
- 5元的小乌龟吃什么_小乌龟吃什么?小乌龟怎么养经验详解
- Linux下笔记本禁用触摸板
- 如何在 SAP ABAP 系统中使用 Adobe Form
- C++ 实现两个向量之间的夹角