再次体验 sscanf函数的强大

本文展示了如何通过使用sscanf函数简化复杂文件读写程序,实现高效截取配置信息,包括拍照模式、分辨率、序列、质量、锐度、白平衡、颜色、曝光限制、防抖、日期戳等参数。代码片段中提到的处理逻辑避免了内存占用差异的问题,并确保注释不影响数据读取。

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

    本来好复杂的一个文件读写程序,只要经过sscanf 函数出马,立即减少了几百行

处理文件字符

#photo
 21 photo.capturemode=Single #Single (2S Timer) (5S Timer) (10S Timer)
 22 photo.resolution=2MHD #2MHD VGA 1.3M //12M 10M 8M 5M 3M
 23 photo.sequence=Off #On Off
 24 photo.quality=Fine #Fine Normal Economy
 25 photo.sharpness=Normal #Strong Normal Soft
 26 photo.whitebalance=Auto #Auto Daylight Cloudy Tungsten Fluorescent
 27 photo.color=Color #Color Black&White Sepia
 28 photo.isolimit=Auto #Auto 800 400 200 100
 29 photo.ev=0 #+2.0 +1.5 +1.0 +0.5 0 -0.5 -1.0 -1.5 -2.0
 30 photo.antishaking=Off #On Off
 31 photo.datestamp=Off #On Off

while(fgets(linebuffer, 512, fp))

................此处代码省略

 sscanf(linebuffer, "%[^=]=%[^=-#]", buffer1,buffer2);

这样就能成功截取到# 号之前 =号两侧的字符串了,good

修改# 之前的字符串方式怕占用内存大小不一样就每次都strcpy 一个#号,下次读取文件也照样能读取到#之前的东西,不过这样# 后面的注释有时候就会被修改,不过没关系,这个# 后面只是注释给人看的,没有实际的意义。这么写就是方便,瑕不掩瑜。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值