本来好复杂的一个文件读写程序,只要经过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 一个#号,下次读取文件也照样能读取到#之前的东西,不过这样# 后面的注释有时候就会被修改,不过没关系,这个# 后面只是注释给人看的,没有实际的意义。这么写就是方便,瑕不掩瑜。
本文展示了如何通过使用sscanf函数简化复杂文件读写程序,实现高效截取配置信息,包括拍照模式、分辨率、序列、质量、锐度、白平衡、颜色、曝光限制、防抖、日期戳等参数。代码片段中提到的处理逻辑避免了内存占用差异的问题,并确保注释不影响数据读取。
2517

被折叠的 条评论
为什么被折叠?



