本来好复杂的一个文件读写程序,只要经过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 一个#号,下次读取文件也照样能读取到#之前的东西,不过这样# 后面的注释有时候就会被修改,不过没关系,这个# 后面只是注释给人看的,没有实际的意义。这么写就是方便,瑕不掩瑜。