C语言编程甲流病人初筛,用C语言编写分检气象报程序的经验

气象仪器装备 2004年第3期

1 整体思路

本台通过网络每隔 10分钟获取一个广州气象

报的报文文件 ,这个文件由各种不同的气象信息组

成,需要编制程序从中自动分检出预报员所需要的

气象信息,所以我们编写了一个软件来实现报文的

自动分检。在编程的实践中得到一些有用的经验,

现介绍如下。

使用的编译器是 VC++6.0,操作系统是

Windows Me。

2 程序的基本框架

①得到当前时间;

②根据当前时间得到需要处理的报文文件名;

③读人当前报文;

④判断出当前报文是否有预报员需要的内容;

⑤把需要的内容分检出来并写入特定的文件。

3 经 验

①广州报的文件名是由“hs+发报时的世界时

. CGD”组成的,比如文件hs021030.CGD就是世界

时间某年某月 2 13 10点 30分的报文。所以可以用

time(time t★)很方便地得到当前的时间,然后再用

localtime(const time_t★)函数得到具体时间标志。

但需要注意的是,得到的时间的表达方式和我们平

时表达时间的习惯方式有很大不同,如:星期一到

星期六的标志分别是 1到 6,这符合我们的习惯,

但星期13的标志却是0,不是7。并且表示年的数字

是 3位数,后 2位表示年,首位固定值是 1。下面是

得到时间的完整源代码:

struct tm★bt;

time t at;

int YY,mm,ww,dd,hh,mn,sc;

time(&at);

bt=localtime(&at);

YY=bt一> tm

— year;

YY=YY一100;

mm‘=bt一> tm

mon+1;

dd=bt一> tm

mday;

hh=bt一> tm

hour;

mn=bt一> tm

_

min;

ww=bt一> tm

wday;

SC=bt一> tm

— sec;

②分检报文程序需要处理大量的字符数组,这

时特别要避免出现数组越位,即使在我们的程序中

出现多个数组越位的情况,C语言的编译器也会完

全正常编译并通过,但在程序实际运行过程中就会

暴露出这样或那样的问题,可能会出现莫名其妙和

难以查找的小故障,或者是出现错误中断退出的大

故障。所以在用 sprintf(char*,const char9~,⋯)、

strcat(char★,const char★)、strcpy(char★,const

char★)这样的函数给一个字符数组赋值时一定要

注意检查。另外要注意的是,英文字母是一个字节,

而汉字是两个字节。

③分检报文这类程序需要非常频繁地打开和

关闭报文文件,这时一般用fopen(const char9~,const

char')~)函数就可以了,但这里要注意的就是函数的

第一个参数不能为空值,如果是一个空值的话就会

出错,一般是导致程序立即中断退出。所以需要用

strcmp(const char9~,const char9~)先检查一下:

if()strcmp(c3, ”)=0)return;

else

((fpo=fopen(c3,”r,’))=0)

end if

④要注意运算符的优先级,比如下面的语句是

错误的:

if(fpl=fopen(c4,”r”)=0)

这是因为关系运算符 “=”的 (下转第61页)

一 —

维普资讯 http://www.cqvip.com

气象仪器装备 2004年第 3期

C=a一0.3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值