用sscanf()从字符串中读数

本文深入探讨了在C++环境下,如何使用`sscanf()`函数从包含非数字字符的字符串中提取实数值,并通过一个具体的实例展示了如何从文件名中解析时间戳。同时,文章对比了`sscanf()`与`scanf()`的用法差异,以及`sscanf()`在固定字符串输入源中的应用。此外,还介绍了字符串到字符串的输出函数`sprintf()`的使用方法,以及它与`printf()`的相似之处。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将一个只有数字的字符串转换成实数,可以用atof(buf);但是如果字符串里包含其他非数字字符,就需要用到sscanf().

例如从一个文件名字符串中提取时间:

#include <stdio.h>
#include <stdlib.h>
void main()
{
	char buf[50]="VOL_20151001162015.h264";
	double videoTime;
	sscanf_s(buf,"VOL_%lf.h264",&videoTime);
	printf("%.0lf\n",videoTime);
	system("pause");
}

sscanf和scanf用法相似,只不过sscanf是固定字符串作为输入源,scanf是键盘为输入源。

这个函数的原型在stdio.h中。具体用法可参考:

http://blog.chinaunix.net/uid-26284412-id-3189214.html

http://www.91linux.com/html/article/program/cpp/20081130/14121.html


同样sprintf()是输出到字符串中,用法和print()相似。具体用法可参考:

http://www.cnblogs.com/Anker/p/3351168.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值